diff --git a/CHANGELOG.md b/CHANGELOG.md index 71ebefb3f8..71825d1388 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## Unreleased + +### Features + +- Added StartSpan and GetTransaction methods to the SentrySdk ([#4303](https://github.com/getsentry/sentry-dotnet/pull/4303)) + ## 5.11.2 ### Fixes diff --git a/src/Sentry/SentrySdk.cs b/src/Sentry/SentrySdk.cs index d00b002576..4317314014 100644 --- a/src/Sentry/SentrySdk.cs +++ b/src/Sentry/SentrySdk.cs @@ -634,6 +634,12 @@ public static SentryId CaptureCheckIn(string monitorSlug, scope, configureMonitorOptions); + /// + /// Starts a transaction if there is not already one active on the scope, otherwise starts a new child span on the + /// currently active transaction. + /// + public static ISpan StartSpan(string operation, string description) => CurrentHub.StartSpan(operation, description); + /// /// Starts a transaction. /// @@ -692,7 +698,13 @@ public static void BindException(Exception exception, ISpan span) => CurrentHub.BindException(exception, span); /// - /// Gets the last active span. + /// Gets the currently active transaction. + /// + [DebuggerStepThrough] + public static ITransactionTracer? GetTransaction() => CurrentHub.GetTransaction(); + + /// + /// Gets the last active span /// [DebuggerStepThrough] public static ISpan? GetSpan() diff --git a/test/Sentry.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt b/test/Sentry.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt index 82d7cdf7f7..3bbe328943 100644 --- a/test/Sentry.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt +++ b/test/Sentry.Tests/ApiApprovalTests.Run.DotNet8_0.verified.txt @@ -861,6 +861,7 @@ namespace Sentry public static Sentry.BaggageHeader? GetBaggage() { } public static Sentry.ISpan? GetSpan() { } public static Sentry.SentryTraceHeader? GetTraceHeader() { } + public static Sentry.ITransactionTracer? GetTransaction() { } public static System.IDisposable Init() { } public static System.IDisposable Init(Sentry.SentryOptions options) { } public static System.IDisposable Init(System.Action? configureOptions) { } @@ -871,6 +872,7 @@ namespace Sentry public static void ResumeSession() { } public static void SetTag(string key, string value) { } public static void StartSession() { } + public static Sentry.ISpan StartSpan(string operation, string description) { } public static Sentry.ITransactionTracer StartTransaction(Sentry.ITransactionContext context) { } public static Sentry.ITransactionTracer StartTransaction(Sentry.ITransactionContext context, System.Collections.Generic.IReadOnlyDictionary customSamplingContext) { } public static Sentry.ITransactionTracer StartTransaction(string name, string operation) { } diff --git a/test/Sentry.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt b/test/Sentry.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt index 82d7cdf7f7..3bbe328943 100644 --- a/test/Sentry.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt +++ b/test/Sentry.Tests/ApiApprovalTests.Run.DotNet9_0.verified.txt @@ -861,6 +861,7 @@ namespace Sentry public static Sentry.BaggageHeader? GetBaggage() { } public static Sentry.ISpan? GetSpan() { } public static Sentry.SentryTraceHeader? GetTraceHeader() { } + public static Sentry.ITransactionTracer? GetTransaction() { } public static System.IDisposable Init() { } public static System.IDisposable Init(Sentry.SentryOptions options) { } public static System.IDisposable Init(System.Action? configureOptions) { } @@ -871,6 +872,7 @@ namespace Sentry public static void ResumeSession() { } public static void SetTag(string key, string value) { } public static void StartSession() { } + public static Sentry.ISpan StartSpan(string operation, string description) { } public static Sentry.ITransactionTracer StartTransaction(Sentry.ITransactionContext context) { } public static Sentry.ITransactionTracer StartTransaction(Sentry.ITransactionContext context, System.Collections.Generic.IReadOnlyDictionary customSamplingContext) { } public static Sentry.ITransactionTracer StartTransaction(string name, string operation) { } diff --git a/test/Sentry.Tests/ApiApprovalTests.Run.Net4_8.verified.txt b/test/Sentry.Tests/ApiApprovalTests.Run.Net4_8.verified.txt index 701eaa25b3..8ef155217f 100644 --- a/test/Sentry.Tests/ApiApprovalTests.Run.Net4_8.verified.txt +++ b/test/Sentry.Tests/ApiApprovalTests.Run.Net4_8.verified.txt @@ -842,6 +842,7 @@ namespace Sentry public static Sentry.BaggageHeader? GetBaggage() { } public static Sentry.ISpan? GetSpan() { } public static Sentry.SentryTraceHeader? GetTraceHeader() { } + public static Sentry.ITransactionTracer? GetTransaction() { } public static System.IDisposable Init() { } public static System.IDisposable Init(Sentry.SentryOptions options) { } public static System.IDisposable Init(System.Action? configureOptions) { } @@ -852,6 +853,7 @@ namespace Sentry public static void ResumeSession() { } public static void SetTag(string key, string value) { } public static void StartSession() { } + public static Sentry.ISpan StartSpan(string operation, string description) { } public static Sentry.ITransactionTracer StartTransaction(Sentry.ITransactionContext context) { } public static Sentry.ITransactionTracer StartTransaction(Sentry.ITransactionContext context, System.Collections.Generic.IReadOnlyDictionary customSamplingContext) { } public static Sentry.ITransactionTracer StartTransaction(string name, string operation) { }