diff --git a/src/Sentry.OpenTelemetry.Exporter/SentryTracerProviderBuilderExtensions.cs b/src/Sentry.OpenTelemetry.Exporter/SentryTracerProviderBuilderExtensions.cs index 0bd9e03130..7dcf8e07fc 100644 --- a/src/Sentry.OpenTelemetry.Exporter/SentryTracerProviderBuilderExtensions.cs +++ b/src/Sentry.OpenTelemetry.Exporter/SentryTracerProviderBuilderExtensions.cs @@ -42,6 +42,11 @@ public static class SentryTracerProviderBuilderExtensions public static TracerProviderBuilder AddSentryOtlpExporter(this TracerProviderBuilder tracerProviderBuilder, string dsnString, Uri? collectorUrl = null, TextMapPropagator? defaultTextMapPropagator = null) { + if (Dsn.IsDisabled(dsnString)) + { + return tracerProviderBuilder; + } + if (Dsn.TryParse(dsnString) is not { } dsn) { throw new ArgumentException(MissingDsnWarning, nameof(dsnString)); diff --git a/test/Sentry.OpenTelemetry.Exporter.Tests/SentryTracerProviderBuilderExtensionsTests.cs b/test/Sentry.OpenTelemetry.Exporter.Tests/SentryTracerProviderBuilderExtensionsTests.cs index dc9ad16be0..d061cbac7c 100644 --- a/test/Sentry.OpenTelemetry.Exporter.Tests/SentryTracerProviderBuilderExtensionsTests.cs +++ b/test/Sentry.OpenTelemetry.Exporter.Tests/SentryTracerProviderBuilderExtensionsTests.cs @@ -7,7 +7,6 @@ public class SentryTracerProviderBuilderExtensionsTests { [Theory] [InlineData(null)] - [InlineData("")] [InlineData("foo")] public void AddSentryOtlpExporter_InvalidDsn_ThrowsArgumentException(string dsn) { @@ -22,6 +21,20 @@ public void AddSentryOtlpExporter_InvalidDsn_ThrowsArgumentException(string dsn) .WithMessage($"{SentryTracerProviderBuilderExtensions.MissingDsnWarning}*"); } + [Fact] + public void AddSentryOtlpExporter_DisabledSdkDsn_ReturnsWithoutConfiguringExporter() + { + // Arrange + var tracerProviderBuilder = Substitute.For(); + + // Act + var result = tracerProviderBuilder.AddSentryOtlpExporter(SentryConstants.DisableSdkDsnValue); + + // Assert + result.Should().BeSameAs(tracerProviderBuilder); + tracerProviderBuilder.DidNotReceive().AddInstrumentation(Arg.Any>()); + } + [Fact] public void OtlpConfigurationCallback_WithCustomCollectorUrl_SetsEndpointToCustomUrl() {