diff --git a/CHANGELOG.md b/CHANGELOG.md index 7cd67569b9..1010e6a42e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ - Tags should not differ based on current culture ([#1949](https://github.com/getsentry/sentry-dotnet/pull/1949)) - Always recalculate payload length ([#1957](https://github.com/getsentry/sentry-dotnet/pull/1957)) - Fix issues with envelope deserialization ([#1965](https://github.com/getsentry/sentry-dotnet/pull/1965)) +- Set default trace status to `ok` instead of `unknown_error` ([#1970](https://github.com/getsentry/sentry-dotnet/pull/1970)) ## 3.21.0 diff --git a/src/Sentry/SpanTracer.cs b/src/Sentry/SpanTracer.cs index 91fcf7480d..f5cd28e4d9 100644 --- a/src/Sentry/SpanTracer.cs +++ b/src/Sentry/SpanTracer.cs @@ -92,7 +92,7 @@ public class SpanTracer : ISpan /// public void Finish() { - Status ??= SpanStatus.UnknownError; + Status ??= SpanStatus.Ok; EndTimestamp = _stopwatch.CurrentDateTimeOffset; } diff --git a/src/Sentry/TransactionTracer.cs b/src/Sentry/TransactionTracer.cs index c52c5ae028..b1a9549a93 100644 --- a/src/Sentry/TransactionTracer.cs +++ b/src/Sentry/TransactionTracer.cs @@ -251,7 +251,7 @@ internal ISpan StartChild(SpanId parentSpanId, string operation) /// public void Finish() { - Status ??= SpanStatus.UnknownError; + Status ??= SpanStatus.Ok; EndTimestamp = _stopwatch.CurrentDateTimeOffset; foreach (var span in _spans) diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt index 1c4ce12998..f4425027a4 100644 --- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt +++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Core3_1.verified.txt @@ -33,7 +33,7 @@ Platform: csharp, Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true, SampleRate: 1.0, Request: {}, @@ -41,7 +41,7 @@ trace: { Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true } }, diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt index 99b6ee225e..f8a33986ef 100644 --- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt +++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.DotNet6_0.verified.txt @@ -33,7 +33,7 @@ Platform: csharp, Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true, SampleRate: 1.0, Request: {}, @@ -41,7 +41,7 @@ trace: { Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true } }, diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt index 31d0635ef2..d420ed6d8b 100644 --- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt +++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsEf.Net4_8.verified.txt @@ -33,7 +33,7 @@ Platform: csharp, Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true, SampleRate: 1.0, Request: {}, @@ -41,7 +41,7 @@ trace: { Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true } }, diff --git a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt index 499b2d34f3..0ece10e737 100644 --- a/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt +++ b/test/Sentry.DiagnosticSource.IntegrationTests/SqlListenerTests.RecordsSql.verified.txt @@ -33,7 +33,7 @@ Platform: csharp, Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true, SampleRate: 1.0, Request: {}, @@ -41,7 +41,7 @@ trace: { Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true } }, diff --git a/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt b/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt index 1c61b239aa..3b569bd4ae 100644 --- a/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt +++ b/test/Sentry.EntityFramework.Tests/IntegrationTests.Simple.verified.txt @@ -33,7 +33,7 @@ Platform: csharp, Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true, SampleRate: 1.0, Request: {}, @@ -41,7 +41,7 @@ trace: { Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true } }, diff --git a/test/Sentry.Tests/Protocol/TransactionTests.cs b/test/Sentry.Tests/Protocol/TransactionTests.cs index 975d6d9bfb..8881a6f641 100644 --- a/test/Sentry.Tests/Protocol/TransactionTests.cs +++ b/test/Sentry.Tests/Protocol/TransactionTests.cs @@ -302,7 +302,7 @@ public void Finish_LinksExceptionToEvent() } [Fact] - public void Finish_NoStatus_DefaultsToUnknown() + public void Finish_NoStatus_DefaultsToOk() { // Arrange var hub = Substitute.For(); @@ -312,7 +312,7 @@ public void Finish_NoStatus_DefaultsToUnknown() transaction.Finish(); // Assert - transaction.Status.Should().Be(SpanStatus.UnknownError); + transaction.Status.Should().Be(SpanStatus.Ok); } [Fact] @@ -331,4 +331,35 @@ public void Finish_StatusSet_DoesNotOverride() // Assert transaction.Status.Should().Be(SpanStatus.DataLoss); } + + [Fact] + public void Finish_ChildSpan_NoStatus_DefaultsToOk() + { + // Arrange + var hub = Substitute.For(); + var transaction = new TransactionTracer(hub, "my name", "my op"); + var span = transaction.StartChild("child op"); + + // Act + span.Finish(); + + // Assert + span.Status.Should().Be(SpanStatus.Ok); + } + + [Fact] + public void Finish_ChildSpan_StatusSet_DoesNotOverride() + { + // Arrange + var hub = Substitute.For(); + var transaction = new TransactionTracer(hub, "my name", "my op"); + var span = transaction.StartChild("child op"); + span.Status = SpanStatus.DataLoss; + + // Act + span.Finish(); + + // Assert + span.Status.Should().Be(SpanStatus.DataLoss); + } } diff --git a/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt b/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt index 381470823b..53be8c218c 100644 --- a/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt +++ b/test/Sentry.Tests/TransactionProcessorTests.Simple.verified.txt @@ -60,7 +60,7 @@ Platform: csharp, Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true, SampleRate: 1.0, Request: {}, @@ -69,7 +69,7 @@ trace: { Operation: my operation, Description: , - Status: UnknownError, + Status: Ok, IsSampled: true } },