diff --git a/src/OpenTelemetry/CHANGELOG.md b/src/OpenTelemetry/CHANGELOG.md index 33ac5c0f5f0..ad209477e62 100644 --- a/src/OpenTelemetry/CHANGELOG.md +++ b/src/OpenTelemetry/CHANGELOG.md @@ -2,6 +2,12 @@ ## Unreleased +* Enabling `SetErrorStatusOnException` on TracerProvider will now set the +`Status` property on Activity to `ActivityStatusCode.Error` in case of an error. +This will be done in addition to current behavior of setting `otel.status_code` +tag on activity. +([#4336](https://github.com/open-telemetry/opentelemetry-dotnet/pull/4336)) + * Add support for configuring the [Base2 Exponential Bucket Histogram Aggregation](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/metrics/sdk.md#base2-exponential-bucket-histogram-aggregation) using the `AddView` API. This aggregation is supported by OTLP but not yet by diff --git a/src/OpenTelemetry/Trace/ExceptionProcessor.cs b/src/OpenTelemetry/Trace/ExceptionProcessor.cs index 560395d9e1b..7472aa9649e 100644 --- a/src/OpenTelemetry/Trace/ExceptionProcessor.cs +++ b/src/OpenTelemetry/Trace/ExceptionProcessor.cs @@ -75,7 +75,11 @@ public override void OnEnd(Activity activity) if (snapshot != pointers) { + // TODO: Remove this when SetStatus is deprecated activity.SetStatus(Status.Error); + + // For processors/exporters checking `Status` property. + activity.SetStatus(ActivityStatusCode.Error); } } } diff --git a/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs b/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs index 252f749f4bb..4e164ea7dae 100644 --- a/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs +++ b/test/OpenTelemetry.Tests/Trace/TracerProviderBuilderExtensionsTest.cs @@ -56,6 +56,7 @@ public void SetErrorStatusOnExceptionEnabled() } Assert.Equal(StatusCode.Error, activity.GetStatus().StatusCode); + Assert.Equal(ActivityStatusCode.Error, activity.Status); } [Fact] @@ -84,6 +85,7 @@ public void SetErrorStatusOnExceptionDisabled() } Assert.Equal(StatusCode.Unset, activity.GetStatus().StatusCode); + Assert.Equal(ActivityStatusCode.Unset, activity.Status); } [Fact]