From 89c485015abea9ed87f71ee0f022b01c66d8dbda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:23:21 -0700 Subject: [PATCH 01/29] docs(php): Add OTLP integration docs Document the OTLPIntegration for the PHP SDK, covering install, configuration, behavior, options (setup_otlp_traces_exporter, collector_url), and supported versions. The integration was added in sentry-php 4.23.0 (PR getsentry/sentry-php#2030) but had no corresponding documentation. Co-Authored-By: Claude Opus 4.6 --- .../php/common/integrations/otlp/index.mdx | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 docs/platforms/php/common/integrations/otlp/index.mdx diff --git a/docs/platforms/php/common/integrations/otlp/index.mdx b/docs/platforms/php/common/integrations/otlp/index.mdx new file mode 100644 index 0000000000000..7c60b0e52110d --- /dev/null +++ b/docs/platforms/php/common/integrations/otlp/index.mdx @@ -0,0 +1,74 @@ +--- +title: OpenTelemetry (OTLP) +description: "Learn about using OTLP to automatically send OpenTelemetry Traces to Sentry." +keywords: ["otlp", "otel", "opentelemetry"] +--- + +The OTLP integration configures the Sentry SDK to automatically send trace data instrumented by an OpenTelemetry SDK to Sentry's [OpenTelemetry Protocol](https://opentelemetry.io/docs/specs/otel/protocol/) [ingestion endpoint](/concepts/otlp). + + + +Using Sentry tracing and OTLP tracing at the same time is not supported. If Sentry tracing is enabled (`traces_sample_rate`, `traces_sampler`, or `enable_tracing`), the integration will not be registered. + + + +## Install + +Install the required OpenTelemetry packages via Composer: + +```bash +composer require \ + open-telemetry/sdk \ + open-telemetry/exporter-otlp \ + open-telemetry/transport-grumphp +``` + +## Configure + +You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. + +### OpenTelemetry + +For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/getting-started/#instrumentation) you want to capture. + +### Sentry + +For the Sentry SDK, add the `OTLPIntegration` to your existing configuration. + +```php +\Sentry\init([ + 'dsn' => '___PUBLIC_DSN___', + // Add data like request headers and IP for users, if applicable; + // see https://docs.sentry.io/platforms/php/data-management/data-collected/ for more info + 'send_default_pii' => true, + 'integrations' => [ + new \Sentry\Integration\OTLPIntegration(), + ], +]); +``` + +## Behavior + +Under the hood, the `OTLPIntegration` sets up the following parts: + +* A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the PHP SDK (i.e. do not set `traces_sample_rate`, `traces_sampler`, or `enable_tracing`). +* Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + +## Options + +You can pass the following arguments to the `OTLPIntegration` constructor: + +- `setup_otlp_traces_exporter` (bool): + + Automatically configure an Exporter to send OTLP traces to the right project from the DSN or `collector_url`, defaults to `true`. + + Set to `false` to set up the TracerProvider manually. + +- `collector_url` (string|null): + + URL of your own OpenTelemetry collector. When set, the exporter will send traces to this URL instead of the Sentry OTLP endpoint derived from the DSN. + +## Supported Versions + +- PHP: 7.2+ +- sentry/sentry: 4.23.0+ From 96cfc6f2944dd8c1aa916081becf7256908cf59e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:24:17 -0700 Subject: [PATCH 02/29] docs(dotnet): Add OTLP integration docs Document the new Sentry.OpenTelemetry.Exporter NuGet package with AddSentryOtlpExporter(dsn) and UseOtlp() extension methods. The package was added in sentry-dotnet PR getsentry/sentry-dotnet#4899 (May 2026) but had no corresponding documentation. Co-Authored-By: Claude Opus 4.6 --- .../instrumentation/opentelemetry-otlp.mdx | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx new file mode 100644 index 0000000000000..769c6baa701fc --- /dev/null +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -0,0 +1,86 @@ +--- +title: OpenTelemetry (OTLP) +description: "Learn about using OTLP to automatically send OpenTelemetry Traces to Sentry." +sidebar_order: 21 +keywords: ["otlp", "otel", "opentelemetry"] +--- + +The OTLP exporter configures the Sentry SDK to automatically send trace data instrumented by an OpenTelemetry SDK to Sentry's [OpenTelemetry Protocol](https://opentelemetry.io/docs/specs/otel/protocol/) [ingestion endpoint](/concepts/otlp). + +## Install + +Add the `Sentry.OpenTelemetry.Exporter` NuGet package to your project: + +```shell {tabTitle:.NET Core CLI} +dotnet add package Sentry.OpenTelemetry.Exporter +``` + +```powershell {tabTitle:Package Manager} +Install-Package Sentry.OpenTelemetry.Exporter +``` + +This package includes the standard OpenTelemetry OTLP exporter as a transitive dependency. + +To instrument outgoing HTTP requests using OpenTelemetry, also install [`OpenTelemetry.Instrumentation.Http`](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http): + +```shell {tabTitle:.NET Core CLI} +dotnet add package OpenTelemetry.Instrumentation.Http +``` + +```powershell {tabTitle:Package Manager} +Install-Package OpenTelemetry.Instrumentation.Http +``` + +## Configure + +You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. + +### OpenTelemetry + +Set up a `TracerProvider` using `AddSentryOtlpExporter` with your DSN. This automatically configures the OTLP endpoint and authentication headers derived from the DSN. + +```csharp +using var tracerProvider = Sdk.CreateTracerProviderBuilder() + .AddSource(serviceName) + .AddHttpClientInstrumentation() + .AddSentryOtlpExporter("___PUBLIC_DSN___") + .Build(); +``` + +### Sentry + +Initialize Sentry and call `UseOtlp()` to disable Sentry's built-in span creation in favor of OpenTelemetry tracing. + +```csharp +SentrySdk.Init(options => +{ + options.Dsn = "___PUBLIC_DSN___"; + options.UseOtlp(); +}); +``` + +## Behavior + +Under the hood, the OTLP exporter sets up the following parts: + +* An OTLP exporter that automatically configures the ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Sentry SDK (i.e. do not set `TracesSampleRate`). +* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent`, ensuring [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works +* Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + +Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which turns off Sentry's automatic span creation from `SentryHttpMessageHandler`, `DiagnosticSource` listener, and Entity Framework interception to avoid duplicate spans. + +## Options + +`AddSentryOtlpExporter` accepts the following parameters: + +- `dsnString` (string): + + Your Sentry DSN. The OTLP endpoint and authentication headers are derived from this automatically. + +- `collectorUrl` (Uri, optional): + + URL of your own OpenTelemetry collector. When set, the exporter will send traces to this URL instead of the Sentry OTLP endpoint derived from the DSN. + +- `defaultTextMapPropagator` (TextMapPropagator, optional): + + Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. From 2d7dd0240e634fc2943c11f2ed3666ac8410ca93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:24:47 -0700 Subject: [PATCH 03/29] docs(symfony): Add OTLP integration docs Document Symfony-specific configuration for the OTLPIntegration introduced in sentry-symfony 5.4 (PR getsentry/sentry-symfony#1014). References the PHP OTLP integration docs for shared behavior and options. Co-Authored-By: Claude Opus 4.6 --- .../php/guides/symfony/integrations/otlp.mdx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 docs/platforms/php/guides/symfony/integrations/otlp.mdx diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx new file mode 100644 index 0000000000000..2634104818eaa --- /dev/null +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -0,0 +1,57 @@ +--- +title: OpenTelemetry (OTLP) +description: "Learn about using OTLP to automatically send OpenTelemetry Traces to Sentry." +keywords: ["otlp", "otel", "opentelemetry"] +--- + +The OTLP integration configures the Sentry SDK to automatically send trace data instrumented by an OpenTelemetry SDK to Sentry's [OpenTelemetry Protocol](https://opentelemetry.io/docs/specs/otel/protocol/) [ingestion endpoint](/concepts/otlp). + + + +Using Sentry tracing and OTLP tracing at the same time is not supported. If Sentry tracing is enabled (`traces_sample_rate`, `traces_sampler`, or `enable_tracing`), the integration will not be registered. + + + +## Install + +Install the required OpenTelemetry packages via Composer: + +```bash +composer require \ + sentry/sentry-symfony:"^5.4" \ + open-telemetry/sdk \ + open-telemetry/exporter-otlp \ + open-telemetry/transport-grumphp +``` + +## Configure + +You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. + +### OpenTelemetry + +For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/getting-started/#instrumentation) you want to capture. + +### Sentry + +Add the `OTLPIntegration` to the integrations list in your Sentry bundle configuration: + +```yaml {filename:config/packages/sentry.yaml} +sentry: + options: + integrations: + - Sentry\Integration\OTLPIntegration +``` + +The `OTLPIntegration` is registered as a service by the Sentry Symfony bundle automatically. + +## Behavior + +Under the hood, the `OTLPIntegration` sets up the following parts: + +* A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the PHP SDK (i.e. do not set `traces_sample_rate`, `traces_sampler`, or `enable_tracing`). +* Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + +## Options + +For details on available options (`setup_otlp_traces_exporter`, `collector_url`), see the PHP OTLP integration docs. From 3d63abb26fdc9dbbbf74dbe3d71f270bd8dee76d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:25:06 -0700 Subject: [PATCH 04/29] docs(laravel): Add OTLP integration docs Document Laravel-specific configuration for the OTLPIntegration introduced in sentry-laravel 4.15 (PR getsentry/sentry-laravel#1122). References the PHP OTLP integration docs for shared behavior and options. Co-Authored-By: Claude Opus 4.6 --- .../php/guides/laravel/integrations/otlp.mdx | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docs/platforms/php/guides/laravel/integrations/otlp.mdx diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx new file mode 100644 index 0000000000000..4c658d888a6a6 --- /dev/null +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -0,0 +1,54 @@ +--- +title: OpenTelemetry (OTLP) +description: "Learn about using OTLP to automatically send OpenTelemetry Traces to Sentry." +keywords: ["otlp", "otel", "opentelemetry"] +--- + +The OTLP integration configures the Sentry SDK to automatically send trace data instrumented by an OpenTelemetry SDK to Sentry's [OpenTelemetry Protocol](https://opentelemetry.io/docs/specs/otel/protocol/) [ingestion endpoint](/concepts/otlp). + + + +Using Sentry tracing and OTLP tracing at the same time is not supported. If Sentry tracing is enabled (`traces_sample_rate`, `traces_sampler`, or `enable_tracing`), the integration will not be registered. + + + +## Install + +Install the required OpenTelemetry packages via Composer: + +```bash +composer require \ + sentry/sentry-laravel:"^4.15" \ + open-telemetry/sdk \ + open-telemetry/exporter-otlp \ + open-telemetry/transport-grumphp +``` + +## Configure + +You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. + +### OpenTelemetry + +For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/getting-started/#instrumentation) you want to capture. + +### Sentry + +Add the `OTLPIntegration` class to the `integrations` array in `config/sentry.php`: + +```php {filename:config/sentry.php} +'integrations' => [ + \Sentry\Integration\OTLPIntegration::class, +], +``` + +## Behavior + +Under the hood, the `OTLPIntegration` sets up the following parts: + +* A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the PHP SDK (i.e. do not set `traces_sample_rate`, `traces_sampler`, or `enable_tracing`). +* Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + +## Options + +For details on available options (`setup_otlp_traces_exporter`, `collector_url`), see the PHP OTLP integration docs. From c6de0ee190f7c4229a02a5f8088597ab121c842c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:25:26 -0700 Subject: [PATCH 05/29] docs(python): Mark legacy OpenTelemetryIntegration as deprecated Update the alert from "New Integration Option" to a deprecation warning. OpenTelemetryIntegration was formally deprecated in favor of OTLPIntegration in sentry-python PR getsentry/sentry-python#6494 (June 2026). Co-Authored-By: Claude Opus 4.6 --- .../python/tracing/instrumentation/opentelemetry.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx index c81625c4ef732..7e36b940ec2f4 100644 --- a/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx @@ -1,12 +1,12 @@ --- -title: Legacy OpenTelemetry Integration Support +title: OpenTelemetry Integration Support (Deprecated) description: "Using OpenTelemetry with Sentry Performance." sidebar_order: 20 --- - + -We now have a dedicated OTLPIntegration that can directly ingest OpenTelemetry Traces into Sentry. We recommend moving over to the new setup since it is much simpler. +The `OpenTelemetryIntegration` is deprecated in favor of the OTLPIntegration, which sends OpenTelemetry traces directly to Sentry over OTLP. Migrate to the new integration for a simpler setup. From 17a117813c001dd2d8434af56f62364e6fd4fc47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:25:44 -0700 Subject: [PATCH 06/29] docs(dotnet): Add deprecation alert to legacy OTel page Mark the Sentry.OpenTelemetry SpanProcessor approach as deprecated in favor of the new Sentry.OpenTelemetry.Exporter OTLP package, matching the deprecation pattern used on the Python and Ruby legacy OTel pages. Co-Authored-By: Claude Opus 4.6 --- .../common/tracing/instrumentation/opentelemetry.mdx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx index 0f48ebfe7101d..11b3f47c5b38f 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx @@ -1,9 +1,15 @@ --- -title: OpenTelemetry Support +title: Legacy OpenTelemetry Support description: "Using OpenTelemetry with Sentry Performance." sidebar_order: 20 --- + + +The `Sentry.OpenTelemetry` SpanProcessor integration is deprecated in favor of the OTLP exporter, which sends OpenTelemetry traces directly to Sentry over OTLP. Migrate to the new `Sentry.OpenTelemetry.Exporter` package for a simpler setup. + + + You can configure your [OpenTelemetry SDK](https://opentelemetry.io/) to send traces and spans to Sentry. ## Install From 8540ee145db4b7aa38457854343db1271ba8090e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:26:07 -0700 Subject: [PATCH 07/29] docs(otlp): Update hub page with all available OTLP integrations Remove the "Coming Soon" section and add .NET, Go, Java, PHP, Laravel, and Symfony to the OTLP Integration list alongside the existing Node.js, Python, and Ruby entries. All listed SDKs now have shipped OTLP support and have corresponding documentation. Co-Authored-By: Claude Opus 4.6 --- docs/concepts/otlp/sentry-with-otel.mdx | 39 ++++++++++++++++++------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/docs/concepts/otlp/sentry-with-otel.mdx b/docs/concepts/otlp/sentry-with-otel.mdx index cc6619664a831..45b8cbb7ce6f5 100644 --- a/docs/concepts/otlp/sentry-with-otel.mdx +++ b/docs/concepts/otlp/sentry-with-otel.mdx @@ -75,29 +75,48 @@ The following SDKs support the `propagateTraceparent` option: If you're running both a Sentry SDK and OTel instrumentation in the same backend service, use the OTLP Integration. This forces Sentry and OTel to share the same trace ID internally, so errors captured by Sentry are automatically linked to your OTLP traces. +- +- +- - +- +- - - -Coming Soon: -- - From 843491581badce4880dde26345b544bba2a677ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:38:47 -0700 Subject: [PATCH 08/29] fix: Address review findings across OTLP docs - Fix wrong package name open-telemetry/transport-grumphp in PHP, Symfony, and Laravel install sections (package does not exist) - Fix undeclared serviceName variable in .NET code example - Add missing Supported Versions section to .NET OTLP page - Fix missing trailing slash on Python PlatformLink - Mark Ruby legacy OTel page as deprecated (was still using soft "New Integration Option" alert) Co-Authored-By: Claude Opus 4.6 --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 8 +++++++- docs/platforms/php/common/integrations/otlp/index.mdx | 3 +-- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 3 +-- docs/platforms/php/guides/symfony/integrations/otlp.mdx | 3 +-- .../python/tracing/instrumentation/opentelemetry.mdx | 2 +- .../ruby/common/tracing/instrumentation/opentelemetry.mdx | 6 +++--- 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 769c6baa701fc..5a6e73984be25 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -41,7 +41,7 @@ Set up a `TracerProvider` using `AddSentryOtlpExporter` with your DSN. This auto ```csharp using var tracerProvider = Sdk.CreateTracerProviderBuilder() - .AddSource(serviceName) + .AddSource("MyApp") // the name of your ActivitySource .AddHttpClientInstrumentation() .AddSentryOtlpExporter("___PUBLIC_DSN___") .Build(); @@ -84,3 +84,9 @@ Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which - `defaultTextMapPropagator` (TextMapPropagator, optional): Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. + +## Supported Versions + +- .NET: 6.0+ +- Sentry.OpenTelemetry.Exporter: 5.0.0+ +- OpenTelemetry: 1.15.0+ diff --git a/docs/platforms/php/common/integrations/otlp/index.mdx b/docs/platforms/php/common/integrations/otlp/index.mdx index 7c60b0e52110d..140fd5921bcd7 100644 --- a/docs/platforms/php/common/integrations/otlp/index.mdx +++ b/docs/platforms/php/common/integrations/otlp/index.mdx @@ -19,8 +19,7 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ open-telemetry/sdk \ - open-telemetry/exporter-otlp \ - open-telemetry/transport-grumphp + open-telemetry/exporter-otlp ``` ## Configure diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index 4c658d888a6a6..8155cd0405f20 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -20,8 +20,7 @@ Install the required OpenTelemetry packages via Composer: composer require \ sentry/sentry-laravel:"^4.15" \ open-telemetry/sdk \ - open-telemetry/exporter-otlp \ - open-telemetry/transport-grumphp + open-telemetry/exporter-otlp ``` ## Configure diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index 2634104818eaa..1de097d659cfe 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -20,8 +20,7 @@ Install the required OpenTelemetry packages via Composer: composer require \ sentry/sentry-symfony:"^5.4" \ open-telemetry/sdk \ - open-telemetry/exporter-otlp \ - open-telemetry/transport-grumphp + open-telemetry/exporter-otlp ``` ## Configure diff --git a/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx index 7e36b940ec2f4..934e40af23f00 100644 --- a/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/python/tracing/instrumentation/opentelemetry.mdx @@ -6,7 +6,7 @@ sidebar_order: 20 -The `OpenTelemetryIntegration` is deprecated in favor of the OTLPIntegration, which sends OpenTelemetry traces directly to Sentry over OTLP. Migrate to the new integration for a simpler setup. +The `OpenTelemetryIntegration` is deprecated in favor of the OTLPIntegration, which sends OpenTelemetry traces directly to Sentry over OTLP. Migrate to the new integration for a simpler setup. diff --git a/docs/platforms/ruby/common/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/ruby/common/tracing/instrumentation/opentelemetry.mdx index fd3f544d25c0d..f98624dc00b4a 100644 --- a/docs/platforms/ruby/common/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/ruby/common/tracing/instrumentation/opentelemetry.mdx @@ -1,12 +1,12 @@ --- -title: Legacy OpenTelemetry Support +title: OpenTelemetry Support (Deprecated) description: "Using OpenTelemetry with Sentry Performance." sidebar_order: 20 --- - + -We now have a dedicated OTLP Integration that can directly ingest OpenTelemetry Traces into Sentry. We recommend moving over to the new setup since it is much simpler. +The legacy OpenTelemetry SpanProcessor integration is deprecated in favor of the OTLP Integration, which sends OpenTelemetry traces directly to Sentry over OTLP. Migrate to the new integration for a simpler setup. From 4cece09f79328cff5a8f045f22645f26709f3d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:40:29 -0700 Subject: [PATCH 09/29] fix: Correct PHP version numbers and option names - Fix Symfony minimum version: ^5.10 not ^5.4 (OTLPIntegration service registration was added in 5.10.0) - Fix Laravel minimum version: ^4.25 not ^4.15 (OTLPIntegration support was added in 4.25.0) - Fix PHP version requirement: 8.1+ not 7.2+ (OpenTelemetry SDK requires PHP 8.1) - Use camelCase option names to match actual PHP constructor params (setupOtlpTracesExporter, collectorUrl) Co-Authored-By: Claude Opus 4.6 --- docs/platforms/php/common/integrations/otlp/index.mdx | 8 ++++---- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 4 ++-- docs/platforms/php/guides/symfony/integrations/otlp.mdx | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/platforms/php/common/integrations/otlp/index.mdx b/docs/platforms/php/common/integrations/otlp/index.mdx index 140fd5921bcd7..efc4761d6813c 100644 --- a/docs/platforms/php/common/integrations/otlp/index.mdx +++ b/docs/platforms/php/common/integrations/otlp/index.mdx @@ -57,17 +57,17 @@ Under the hood, the `OTLPIntegration` sets up the following parts: You can pass the following arguments to the `OTLPIntegration` constructor: -- `setup_otlp_traces_exporter` (bool): +- `setupOtlpTracesExporter` (bool): - Automatically configure an Exporter to send OTLP traces to the right project from the DSN or `collector_url`, defaults to `true`. + Automatically configure an Exporter to send OTLP traces to the right project from the DSN or `collectorUrl`, defaults to `true`. Set to `false` to set up the TracerProvider manually. -- `collector_url` (string|null): +- `collectorUrl` (string|null): URL of your own OpenTelemetry collector. When set, the exporter will send traces to this URL instead of the Sentry OTLP endpoint derived from the DSN. ## Supported Versions -- PHP: 7.2+ +- PHP: 8.1+ (required by the OpenTelemetry SDK) - sentry/sentry: 4.23.0+ diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index 8155cd0405f20..8f83b26e6bebb 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -18,7 +18,7 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ - sentry/sentry-laravel:"^4.15" \ + sentry/sentry-laravel:"^4.25" \ open-telemetry/sdk \ open-telemetry/exporter-otlp ``` @@ -50,4 +50,4 @@ Under the hood, the `OTLPIntegration` sets up the following parts: ## Options -For details on available options (`setup_otlp_traces_exporter`, `collector_url`), see the PHP OTLP integration docs. +For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index 1de097d659cfe..b68d72f7cfc86 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -18,7 +18,7 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ - sentry/sentry-symfony:"^5.4" \ + sentry/sentry-symfony:"^5.10" \ open-telemetry/sdk \ open-telemetry/exporter-otlp ``` @@ -53,4 +53,4 @@ Under the hood, the `OTLPIntegration` sets up the following parts: ## Options -For details on available options (`setup_otlp_traces_exporter`, `collector_url`), see the PHP OTLP integration docs. +For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. From 3e35289ec50b26744f7e4fe60f627b7743ad464c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:45:41 -0700 Subject: [PATCH 10/29] fix(go,java): Correct stale version floors and propagator config Go: - Update version requirements: Go 1.25+, sentry-go 0.47.0+, OTel 1.43.0+ (were 1.18, 0.18.0, 1.11.0) - Update alert: NewSentrySpanProcessor/NewSentryPropagator were removed in v0.47.0, not just deprecated Java: - Add tracecontext,baggage to otel.propagators alongside sentry in both plain Java and Spring Boot examples, matching official SDK samples. Without these, W3C traceparent propagation is lost. Co-Authored-By: Claude Opus 4.6 --- .../go/common/tracing/instrumentation/opentelemetry.mdx | 4 ++-- docs/platforms/java/common/opentelemetry/setup/otlp.mdx | 4 ++-- .../performance/opentelemetry-install/go.mdx | 8 +------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/docs/platforms/go/common/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/go/common/tracing/instrumentation/opentelemetry.mdx index b88cf00714850..b51d9d634a8be 100644 --- a/docs/platforms/go/common/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/go/common/tracing/instrumentation/opentelemetry.mdx @@ -6,9 +6,9 @@ sidebar_order: 20 You can configure your [OpenTelemetry SDK](https://opentelemetry.io/) to send traces to Sentry over OTLP. - + -The legacy `sentryotel.NewSentrySpanProcessor()` integration is deprecated in `sentry-go`. Prefer OTLP export instead: use `sentryotlp.NewTraceExporter()` to send traces directly to Sentry, or use a standard OpenTelemetry exporter if you're sending data through an OpenTelemetry Collector. +The legacy `sentryotel.NewSentrySpanProcessor()` and `sentryotel.NewSentryPropagator()` were removed in `sentry-go` v0.47.0. Use `sentryotlp.NewTraceExporter()` to send traces directly to Sentry via OTLP, or use a standard OpenTelemetry exporter if you're sending data through an OpenTelemetry Collector. diff --git a/docs/platforms/java/common/opentelemetry/setup/otlp.mdx b/docs/platforms/java/common/opentelemetry/setup/otlp.mdx index 82452dcc4fb13..6f82552b8e801 100644 --- a/docs/platforms/java/common/opentelemetry/setup/otlp.mdx +++ b/docs/platforms/java/common/opentelemetry/setup/otlp.mdx @@ -71,7 +71,7 @@ AutoConfiguredOpenTelemetrySdk.builder() properties.put("otel.exporter.otlp.traces.endpoint", "___OTLP_TRACES_URL___"); properties.put("otel.exporter.otlp.traces.protocol", "http/protobuf"); properties.put("otel.exporter.otlp.traces.headers", "x-sentry-auth=sentry sentry_key=___PUBLIC_KEY___"); - properties.put("otel.propagators", "sentry"); + properties.put("otel.propagators", "tracecontext,baggage,sentry"); properties.put("otel.logs.exporter", "none"); properties.put("otel.metrics.exporter", "none"); return properties; @@ -95,7 +95,7 @@ Add the following to your `application.properties`: ```properties {tabTitle:application.properties} sentry.dsn=___PUBLIC_DSN___ -otel.propagators=sentry +otel.propagators=tracecontext,baggage,sentry otel.traces.exporter=otlp otel.exporter.otlp.traces.endpoint=___OTLP_TRACES_URL___ otel.exporter.otlp.traces.protocol=http/protobuf diff --git a/platform-includes/performance/opentelemetry-install/go.mdx b/platform-includes/performance/opentelemetry-install/go.mdx index 41bee1dac4f4a..2194803568440 100644 --- a/platform-includes/performance/opentelemetry-install/go.mdx +++ b/platform-includes/performance/opentelemetry-install/go.mdx @@ -1,12 +1,6 @@ -OpenTelemetry integration was added in `sentry-go` version 0.18.0, and works only for Go >= 1.18. - - - - - -The Sentry Go OpenTelemetry integration requires `go.opentelemetry.io/otel` (and its submodules), version `1.11.0` or higher. +The OTLP-based OpenTelemetry integration requires `sentry-go` v0.47.0+, Go >= 1.25, and `go.opentelemetry.io/otel` v1.43.0+. From d4ebc6543dc92fc3230a066e7e5fb72afe7960d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 13:47:41 -0700 Subject: [PATCH 11/29] fix(dotnet): Align deprecated page title with Python/Ruby pattern Change "Legacy OpenTelemetry Support" to "OpenTelemetry Support (Deprecated)" for consistency with the Python and Ruby deprecated OTel pages. Co-Authored-By: Claude Opus 4.6 --- .../dotnet/common/tracing/instrumentation/opentelemetry.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx index 11b3f47c5b38f..44c95c33c3ed1 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx @@ -1,5 +1,5 @@ --- -title: Legacy OpenTelemetry Support +title: OpenTelemetry Support (Deprecated) description: "Using OpenTelemetry with Sentry Performance." sidebar_order: 20 --- From d348f6dd0f2110ff7f5459d7e7e7b0e51ef3d295 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 14:03:59 -0700 Subject: [PATCH 12/29] fix(php): Update broken OTel instrumentation links The anchor #instrumentation doesn't exist on the getting-started page. Use the dedicated instrumentation page URL instead. Co-Authored-By: Claude Opus 4.6 --- docs/platforms/php/common/integrations/otlp/index.mdx | 2 +- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 2 +- docs/platforms/php/guides/symfony/integrations/otlp.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platforms/php/common/integrations/otlp/index.mdx b/docs/platforms/php/common/integrations/otlp/index.mdx index efc4761d6813c..9d19975ab104b 100644 --- a/docs/platforms/php/common/integrations/otlp/index.mdx +++ b/docs/platforms/php/common/integrations/otlp/index.mdx @@ -28,7 +28,7 @@ You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. ### OpenTelemetry -For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/getting-started/#instrumentation) you want to capture. +For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/instrumentation/) you want to capture. ### Sentry diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index 8f83b26e6bebb..cf461168d4189 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -29,7 +29,7 @@ You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. ### OpenTelemetry -For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/getting-started/#instrumentation) you want to capture. +For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/instrumentation/) you want to capture. ### Sentry diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index b68d72f7cfc86..4f48aa46699e7 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -29,7 +29,7 @@ You need to configure both the OpenTelemetry and Sentry SDKs to get trace data. ### OpenTelemetry -For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/getting-started/#instrumentation) you want to capture. +For the OpenTelemetry SDK, you need to [configure instrumentation](https://opentelemetry.io/docs/languages/php/instrumentation/) you want to capture. ### Sentry From fefea659e0c633d5f974a052234d980d12940320 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 14:25:25 -0700 Subject: [PATCH 13/29] fix(php): Add fallbackPlatform to PlatformLink in guide pages Without fallbackPlatform="php", PlatformLink resolves relative to the guide URL instead of the parent platform, producing broken links. Co-Authored-By: Claude Opus 4.6 --- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 2 +- docs/platforms/php/guides/symfony/integrations/otlp.mdx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index cf461168d4189..da2a6eaab30ef 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -50,4 +50,4 @@ Under the hood, the `OTLPIntegration` sets up the following parts: ## Options -For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. +For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index 4f48aa46699e7..ed94c3d3b3ea7 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -53,4 +53,4 @@ Under the hood, the `OTLPIntegration` sets up the following parts: ## Options -For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. +For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. From fdad7fb5a9fbe1b9c90d48331fcdab1347c403a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 16 Jun 2026 14:53:22 -0700 Subject: [PATCH 14/29] docs(otlp): Reorder hub page links by importance Order platforms by adoption/maturity and group PHP SDKs (PHP, Laravel, Symfony) together instead of scattering them alphabetically. Co-Authored-By: Claude Opus 4.6 --- docs/concepts/otlp/sentry-with-otel.mdx | 36 ++++++++++++------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/concepts/otlp/sentry-with-otel.mdx b/docs/concepts/otlp/sentry-with-otel.mdx index 45b8cbb7ce6f5..e16f1c6dd630b 100644 --- a/docs/concepts/otlp/sentry-with-otel.mdx +++ b/docs/concepts/otlp/sentry-with-otel.mdx @@ -75,6 +75,21 @@ The following SDKs support the `propagateTraceparent` option: If you're running both a Sentry SDK and OTel instrumentation in the same backend service, use the OTLP Integration. This forces Sentry and OTel to share the same trace ID internally, so errors captured by Sentry are automatically linked to your OTLP traces. +- +- +- - - -- - -- -- - Date: Wed, 17 Jun 2026 11:40:44 -0700 Subject: [PATCH 15/29] Update docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Stefan Pölz <38893694+Flash0ver@users.noreply.github.com> --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 5a6e73984be25..5816e5edac912 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -19,6 +19,10 @@ dotnet add package Sentry.OpenTelemetry.Exporter Install-Package Sentry.OpenTelemetry.Exporter ``` +```shell {tabTitle:Paket CLI} +paket add Sentry.OpenTelemetry.Exporter --version {{@inject packages.version('sentry.dotnet') }} +``` + This package includes the standard OpenTelemetry OTLP exporter as a transitive dependency. To instrument outgoing HTTP requests using OpenTelemetry, also install [`OpenTelemetry.Instrumentation.Http`](https://www.nuget.org/packages/OpenTelemetry.Instrumentation.Http): From bc773fb4e4eb75d1884f3043c1ae8567c51405cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Wed, 17 Jun 2026 11:40:58 -0700 Subject: [PATCH 16/29] Update platform-includes/performance/opentelemetry-install/go.mdx Co-authored-by: Giannis Gkiortzis <58184179+giortzisg@users.noreply.github.com> --- platform-includes/performance/opentelemetry-install/go.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/performance/opentelemetry-install/go.mdx b/platform-includes/performance/opentelemetry-install/go.mdx index 2194803568440..c90c13de6dc86 100644 --- a/platform-includes/performance/opentelemetry-install/go.mdx +++ b/platform-includes/performance/opentelemetry-install/go.mdx @@ -1,6 +1,6 @@ -The OTLP-based OpenTelemetry integration requires `sentry-go` v0.47.0+, Go >= 1.25, and `go.opentelemetry.io/otel` v1.43.0+. +The OTLP-based OpenTelemetry integration requires `sentry-go` v0.45.0+, Go >= 1.25, and `go.opentelemetry.io/otel` v1.40.0+. From 84d25a1dc0aaaab5748dec3f19d54adf22d65fa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Wed, 17 Jun 2026 11:41:11 -0700 Subject: [PATCH 17/29] Update docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Stefan Pölz <38893694+Flash0ver@users.noreply.github.com> --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 5816e5edac912..5a21183febb02 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -16,7 +16,7 @@ dotnet add package Sentry.OpenTelemetry.Exporter ``` ```powershell {tabTitle:Package Manager} -Install-Package Sentry.OpenTelemetry.Exporter +Install-Package Sentry.OpenTelemetry.Exporter -Version {{@inject packages.version('sentry.dotnet') }} ``` ```shell {tabTitle:Paket CLI} From a169877a2bc537646307d47a15eb3b3686687cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Wed, 17 Jun 2026 11:46:49 -0700 Subject: [PATCH 18/29] docs(dotnet): Fix OTLP page sidebar order and package version Reorder sidebar so both OpenTelemetry pages are adjacent: - performance-metrics.mdx stays at sidebar_order 20 - opentelemetry.mdx moves to sidebar_order 21 - opentelemetry-otlp.mdx moves to sidebar_order 22 Add version injection to dotnet add package command and remove inaccurate Supported Versions section for consistency with other .NET docs. Co-Authored-By: Claude Opus 4.6 --- .../tracing/instrumentation/opentelemetry-otlp.mdx | 10 ++-------- .../common/tracing/instrumentation/opentelemetry.mdx | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 5a21183febb02..d7e25f7b4d28f 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -1,7 +1,7 @@ --- title: OpenTelemetry (OTLP) description: "Learn about using OTLP to automatically send OpenTelemetry Traces to Sentry." -sidebar_order: 21 +sidebar_order: 22 keywords: ["otlp", "otel", "opentelemetry"] --- @@ -12,7 +12,7 @@ The OTLP exporter configures the Sentry SDK to automatically send trace data ins Add the `Sentry.OpenTelemetry.Exporter` NuGet package to your project: ```shell {tabTitle:.NET Core CLI} -dotnet add package Sentry.OpenTelemetry.Exporter +dotnet add package Sentry.OpenTelemetry.Exporter -v {{@inject packages.version('sentry.dotnet') }} ``` ```powershell {tabTitle:Package Manager} @@ -88,9 +88,3 @@ Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which - `defaultTextMapPropagator` (TextMapPropagator, optional): Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. - -## Supported Versions - -- .NET: 6.0+ -- Sentry.OpenTelemetry.Exporter: 5.0.0+ -- OpenTelemetry: 1.15.0+ diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx index 44c95c33c3ed1..23b951ce99dcf 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry.mdx @@ -1,7 +1,7 @@ --- title: OpenTelemetry Support (Deprecated) description: "Using OpenTelemetry with Sentry Performance." -sidebar_order: 20 +sidebar_order: 21 --- From 316e59aab7fa26fc052c216acffbf2a7473bc783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 29 Jun 2026 17:43:41 +0200 Subject: [PATCH 19/29] docs(otlp): Add planned removal notices for automatic propagator setup Add warning alerts to Python, Ruby, and .NET OTLP pages noting that the automatic propagator setup will be removed in the next major version, with links to the OpenTelemetry propagation API docs. Also add a Supported Versions section to the PHP/Laravel OTLP page and move the version constraint out of the install command to match the format used by other SDK OTLP pages. Co-Authored-By: Claude Opus 4.6 --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 8 +++++++- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 8 +++++++- docs/platforms/python/integrations/otlp/index.mdx | 8 +++++++- docs/platforms/ruby/common/integrations/otlp/index.mdx | 8 +++++++- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index d7e25f7b4d28f..696b3be07f42a 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -68,7 +68,7 @@ SentrySdk.Init(options => Under the hood, the OTLP exporter sets up the following parts: * An OTLP exporter that automatically configures the ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Sentry SDK (i.e. do not set `TracesSampleRate`). -* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent`, ensuring [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works +* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent`, ensuring [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works (see note below) * Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which turns off Sentry's automatic span creation from `SentryHttpMessageHandler`, `DiagnosticSource` listener, and Entity Framework interception to avoid duplicate spans. @@ -88,3 +88,9 @@ Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which - `defaultTextMapPropagator` (TextMapPropagator, optional): Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. + + + + The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/concepts/context-propagation/) instead. + + diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index da2a6eaab30ef..7dcf6afae4a36 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -18,7 +18,7 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ - sentry/sentry-laravel:"^4.25" \ + sentry/sentry-laravel \ open-telemetry/sdk \ open-telemetry/exporter-otlp ``` @@ -51,3 +51,9 @@ Under the hood, the `OTLPIntegration` sets up the following parts: ## Options For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. + +## Supported Versions + +- PHP: 8.1+ +- sentry/sentry-laravel: 4.25.0+ +- open-telemetry/sdk: 1.0+ diff --git a/docs/platforms/python/integrations/otlp/index.mdx b/docs/platforms/python/integrations/otlp/index.mdx index cc643e245bc70..b500fa22a7c72 100644 --- a/docs/platforms/python/integrations/otlp/index.mdx +++ b/docs/platforms/python/integrations/otlp/index.mdx @@ -57,7 +57,7 @@ sentry_sdk.init( Under the hood, the `OTLPIntegration` will setup the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that will automatically setup the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Python SDK. -* A [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) that ensures [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works +* A [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) that ensures [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works (see note below) * Trace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics ## Options @@ -81,6 +81,12 @@ You can pass the following keyword arguments to `OTLPIntegration()`: Set to `False` to configure propagators manually or to disable propagation. + + + The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/languages/python/propagation/) instead. + + + - `capture_exceptions`: Set to `True` to intercept and capture exceptions on the OpenTelemetry Span recorded with `Span.record_exception` in Sentry as well, defaults to `False`. diff --git a/docs/platforms/ruby/common/integrations/otlp/index.mdx b/docs/platforms/ruby/common/integrations/otlp/index.mdx index 30fd0110ee595..6412ba511531a 100644 --- a/docs/platforms/ruby/common/integrations/otlp/index.mdx +++ b/docs/platforms/ruby/common/integrations/otlp/index.mdx @@ -61,7 +61,7 @@ end Under the hood, the OTLP integration sets up the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Ruby SDK (i.e. do not set `traces_sample_rate` or `instrumenter`). -* A [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) that ensures [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works +* A [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) that ensures [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works (see note below) * Trace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics ## Options @@ -88,6 +88,12 @@ You can configure the following options on `config.otlp`: Set to `false` to configure propagators manually or to disable propagation. + + + The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/languages/ruby/propagation/) instead. + + + ## Supported Versions - Ruby: 2.7+ From 048769157b92289ca8f0782467f5eefdb80f3254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 30 Jun 2026 16:21:40 +0200 Subject: [PATCH 20/29] docs(otlp): Clarify exporter vs propagation across OTLP pages Add an 'Exporters, Event Linking, and Propagation' section to the Sentry-with-OTel concepts page explaining the three distinct mechanisms that make traces work in Sentry. Reword propagator bullets on Python, Ruby, and .NET pages to clarify the Sentry propagator is for native- tracing compatibility, not a requirement for distributed tracing. Add a trailing note on all platform OTLP pages linking to the new section. Co-Authored-By: Claude Opus 4.6 --- docs/concepts/otlp/sentry-with-otel.mdx | 6 ++++++ .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 4 +++- docs/platforms/php/common/integrations/otlp/index.mdx | 2 ++ docs/platforms/php/guides/laravel/integrations/otlp.mdx | 2 ++ docs/platforms/php/guides/symfony/integrations/otlp.mdx | 2 ++ docs/platforms/python/integrations/otlp/index.mdx | 6 ++++-- docs/platforms/ruby/common/integrations/otlp/index.mdx | 6 ++++-- 7 files changed, 23 insertions(+), 5 deletions(-) diff --git a/docs/concepts/otlp/sentry-with-otel.mdx b/docs/concepts/otlp/sentry-with-otel.mdx index e16f1c6dd630b..5c268842ab379 100644 --- a/docs/concepts/otlp/sentry-with-otel.mdx +++ b/docs/concepts/otlp/sentry-with-otel.mdx @@ -120,3 +120,9 @@ If you're running both a Sentry SDK and OTel instrumentation in the same backend label="Symfony" url="/platforms/php/guides/symfony/integrations/otlp/" /> + +## Exporters, Event Linking, and Propagation + +The OTLP Integration configures two things: an **exporter** that sends your completed OTel spans to Sentry, and **event linking** that attaches Sentry errors and logs to the active OTel trace so they appear on the right span in the trace waterfall. + +**Cross-service trace propagation** — making Service A and Service B appear in the same distributed trace — is a separate concern handled by OTel's default W3C `traceparent` propagator. This is already active in any standard OTel SDK setup, so traces connect across services without additional Sentry configuration. diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 696b3be07f42a..b18ebf4a24905 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -68,9 +68,11 @@ SentrySdk.Init(options => Under the hood, the OTLP exporter sets up the following parts: * An OTLP exporter that automatically configures the ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Sentry SDK (i.e. do not set `TracesSampleRate`). -* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent`, ensuring [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works (see note below) +* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent` for compatibility with services using Sentry's native tracing (see note below) * Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics +Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. + Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which turns off Sentry's automatic span creation from `SentryHttpMessageHandler`, `DiagnosticSource` listener, and Entity Framework interception to avoid duplicate spans. ## Options diff --git a/docs/platforms/php/common/integrations/otlp/index.mdx b/docs/platforms/php/common/integrations/otlp/index.mdx index 9d19975ab104b..f003eab6e95ee 100644 --- a/docs/platforms/php/common/integrations/otlp/index.mdx +++ b/docs/platforms/php/common/integrations/otlp/index.mdx @@ -53,6 +53,8 @@ Under the hood, the `OTLPIntegration` sets up the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the PHP SDK (i.e. do not set `traces_sample_rate`, `traces_sampler`, or `enable_tracing`). * Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics +Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. + ## Options You can pass the following arguments to the `OTLPIntegration` constructor: diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index 7dcf6afae4a36..07c51850b5974 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -48,6 +48,8 @@ Under the hood, the `OTLPIntegration` sets up the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the PHP SDK (i.e. do not set `traces_sample_rate`, `traces_sampler`, or `enable_tracing`). * Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics +Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. + ## Options For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index ed94c3d3b3ea7..83fb64115aeb4 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -51,6 +51,8 @@ Under the hood, the `OTLPIntegration` sets up the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the PHP SDK (i.e. do not set `traces_sample_rate`, `traces_sampler`, or `enable_tracing`). * Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics +Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. + ## Options For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. diff --git a/docs/platforms/python/integrations/otlp/index.mdx b/docs/platforms/python/integrations/otlp/index.mdx index b500fa22a7c72..85c7576da3cd9 100644 --- a/docs/platforms/python/integrations/otlp/index.mdx +++ b/docs/platforms/python/integrations/otlp/index.mdx @@ -57,8 +57,10 @@ sentry_sdk.init( Under the hood, the `OTLPIntegration` will setup the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that will automatically setup the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Python SDK. -* A [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) that ensures [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works (see note below) -* Trace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics +* A Sentry [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) for compatibility with services using Sentry's native tracing (see note below) +* Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + +Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. ## Options diff --git a/docs/platforms/ruby/common/integrations/otlp/index.mdx b/docs/platforms/ruby/common/integrations/otlp/index.mdx index 6412ba511531a..7896ddea4b9d7 100644 --- a/docs/platforms/ruby/common/integrations/otlp/index.mdx +++ b/docs/platforms/ruby/common/integrations/otlp/index.mdx @@ -61,8 +61,10 @@ end Under the hood, the OTLP integration sets up the following parts: * A [`SpanExporter`](https://opentelemetry.io/docs/concepts/components/#exporters) that automatically configures the OTLP ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Ruby SDK (i.e. do not set `traces_sample_rate` or `instrumenter`). -* A [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) that ensures [distributed tracing](/concepts/key-terms/tracing/distributed-tracing/) works (see note below) -* Trace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics +* A Sentry [`Propagator`](https://opentelemetry.io/docs/concepts/context-propagation/#propagation) for compatibility with services using Sentry's native tracing (see note below) +* Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + +Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. ## Options From 5aa386dc62ac41f154be96ca4edeef4284add380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 30 Jun 2026 16:43:42 +0200 Subject: [PATCH 21/29] docs(otlp): Improve consistency and readability across OTLP pages Normalize Python Behavior section to match Ruby/PHP wording (tense, verb form, specific tracing options in 'Do not' warning). Simplify concepts page intro and break up long sentence in Exporters section. Lowercase 'propagator' and 'distributed tracing' in Python/Ruby options. Add missing Supported Versions section to Symfony OTLP page. Co-Authored-By: Claude Opus 4.6 --- docs/concepts/otlp/sentry-with-otel.mdx | 4 ++-- .../platforms/php/guides/symfony/integrations/otlp.mdx | 6 ++++++ docs/platforms/python/integrations/otlp/index.mdx | 10 +++++----- docs/platforms/ruby/common/integrations/otlp/index.mdx | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/concepts/otlp/sentry-with-otel.mdx b/docs/concepts/otlp/sentry-with-otel.mdx index 5c268842ab379..bd5afc24c2fe7 100644 --- a/docs/concepts/otlp/sentry-with-otel.mdx +++ b/docs/concepts/otlp/sentry-with-otel.mdx @@ -73,7 +73,7 @@ The following SDKs support the `propagateTraceparent` option: ## OTLP Integration -If you're running both a Sentry SDK and OTel instrumentation in the same backend service, use the OTLP Integration. This forces Sentry and OTel to share the same trace ID internally, so errors captured by Sentry are automatically linked to your OTLP traces. +If you're running both a Sentry SDK and OTel instrumentation in the same backend service, use the OTLP Integration. It sends your OTel spans to Sentry and ensures errors and logs are linked to the right traces. - OTLP integration docs. + +## Supported Versions + +- PHP: 8.1+ +- sentry/sentry-symfony: 5.10.0+ +- open-telemetry/sdk: 1.0+ diff --git a/docs/platforms/python/integrations/otlp/index.mdx b/docs/platforms/python/integrations/otlp/index.mdx index 85c7576da3cd9..5f903cb9e9469 100644 --- a/docs/platforms/python/integrations/otlp/index.mdx +++ b/docs/platforms/python/integrations/otlp/index.mdx @@ -27,7 +27,7 @@ For the OpenTelemetry SDK, you need to [configure instrumentation](https://opent ### Sentry -For the Sentry SDK, you simply need to enable our `OTLPIntegration` along with your existing configuration. +For the Sentry SDK, add the `OTLPIntegration` to your existing configuration. Date: Thu, 2 Jul 2026 09:01:03 +0200 Subject: [PATCH 22/29] docs(dotnet): Move Planned Removal alert to Behavior section The alert was buried under the defaultTextMapPropagator option, which is an advanced override most users never look at. Move it to the Behavior section next to the SentryPropagator bullet where users actually learn about the automatic propagator. Co-Authored-By: Claude Opus 4.6 --- .../instrumentation/opentelemetry-otlp.mdx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index b18ebf4a24905..80cb81ba832f7 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -68,9 +68,15 @@ SentrySdk.Init(options => Under the hood, the OTLP exporter sets up the following parts: * An OTLP exporter that automatically configures the ingestion endpoint from your Sentry DSN. This enables tracing in Sentry. **Note:** _Do not_ also set up tracing via the Sentry SDK (i.e. do not set `TracesSampleRate`). -* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent` for compatibility with services using Sentry's native tracing (see note below) +* A `SentryPropagator` that injects `sentry-trace` and `baggage` headers alongside the standard W3C `traceparent` for compatibility with services using Sentry's native tracing * Trace/Span linking for all other Sentry events such as Errors, Logs, and Metrics + + +The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/concepts/context-propagation/) instead. + + + Cross-service trace propagation uses OTel's default W3C `traceparent` headers and does not require additional configuration. See [Exporters, Event Linking, and Propagation](/concepts/otlp/sentry-with-otel/#exporters-event-linking-and-propagation) for details. Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which turns off Sentry's automatic span creation from `SentryHttpMessageHandler`, `DiagnosticSource` listener, and Entity Framework interception to avoid duplicate spans. @@ -89,10 +95,4 @@ Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which - `defaultTextMapPropagator` (TextMapPropagator, optional): - Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. - - - - The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/concepts/context-propagation/) instead. - - + Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. This option will be removed alongside the automatic propagator setup in the next major version. From fd4f8527f97b71f34b1a5110579cd23bf2efb5d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 6 Jul 2026 13:26:32 +0200 Subject: [PATCH 23/29] fix(otlp): Pin Laravel version constraint and fix self-referential links Add ^4.25 version constraint to the Laravel OTLP composer require command to match the documented minimum version. Without this, users with an existing composer.lock at an older version get a no-op install and hit a runtime error when the OTLPIntegration support is missing. Replace PlatformLink with direct links to the base PHP OTLP page on both the Laravel and Symfony guide pages. The PlatformLink component resolves to the current page because guide-level OTLP files exist in the fallback chain, making the options link self-referential. Co-Authored-By: Claude Opus 4.6 --- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 4 ++-- docs/platforms/php/guides/symfony/integrations/otlp.mdx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index 07c51850b5974..07a75d889e267 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -18,7 +18,7 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ - sentry/sentry-laravel \ + sentry/sentry-laravel:"^4.25" \ open-telemetry/sdk \ open-telemetry/exporter-otlp ``` @@ -52,7 +52,7 @@ Cross-service trace propagation uses OTel's default W3C `traceparent` headers an ## Options -For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. +For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the [OTLP integration docs](/platforms/php/integrations/otlp/). ## Supported Versions diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index 56aeb2c6f1760..529332056675d 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -55,7 +55,7 @@ Cross-service trace propagation uses OTel's default W3C `traceparent` headers an ## Options -For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the OTLP integration docs. +For details on available options (`setupOtlpTracesExporter`, `collectorUrl`), see the [OTLP integration docs](/platforms/php/integrations/otlp/). ## Supported Versions From 2ff0fe61b2fc4e833df0bfeea954d0f9ff3af595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 6 Jul 2026 13:30:08 +0200 Subject: [PATCH 24/29] fix(otlp): Fix broken Ruby propagation link The OpenTelemetry Ruby docs do not have a standalone propagation page. Point to the Context Propagation section on the instrumentation page instead, which covers propagator configuration. Co-Authored-By: Claude Opus 4.6 --- docs/platforms/ruby/common/integrations/otlp/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/platforms/ruby/common/integrations/otlp/index.mdx b/docs/platforms/ruby/common/integrations/otlp/index.mdx index d85b976404f34..f3277dfa86af4 100644 --- a/docs/platforms/ruby/common/integrations/otlp/index.mdx +++ b/docs/platforms/ruby/common/integrations/otlp/index.mdx @@ -92,7 +92,7 @@ You can configure the following options on `config.otlp`: - The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/languages/ruby/propagation/) instead. + The automatic propagator setup will be removed in the next major version. Configure propagators manually using the [OpenTelemetry propagation API](https://opentelemetry.io/docs/languages/ruby/instrumentation/#context-propagation) instead. From e1158ce0449cb62e51c4e043944c74df05b173ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 6 Jul 2026 13:46:25 +0200 Subject: [PATCH 25/29] fix(otlp): Fix Java propagator config and add .NET supported versions Include tracecontext and baggage in the Java Spring Boot agentless propagator config. Setting otel.propagators=sentry alone replaces the default W3C propagators, silently breaking cross-service tracing with non-Sentry services. All sentry-java samples use the full list. Add a Supported Versions section to the .NET OTLP page for consistency with PHP, Python, and Ruby OTLP pages which all have one. Co-Authored-By: Claude Opus 4.6 --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 6 ++++++ .../without-java-agent/java.spring-boot.mdx | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 80cb81ba832f7..568ab63e637a5 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -96,3 +96,9 @@ Calling `UseOtlp()` on `SentryOptions` sets `DisableSentryTracing = true`, which - `defaultTextMapPropagator` (TextMapPropagator, optional): Override the default propagator. Defaults to `SentryPropagator`, which propagates `sentry-trace`, `baggage`, and W3C `traceparent` headers. This option will be removed alongside the automatic propagator setup in the next major version. + +## Supported Versions + +- .NET: 8.0+ / .NET Standard 2.0+ / .NET Framework 4.6.2+ +- Sentry: 6.5.0+ +- OpenTelemetry: 1.10.0+ diff --git a/platform-includes/performance/opentelemetry-setup/without-java-agent/java.spring-boot.mdx b/platform-includes/performance/opentelemetry-setup/without-java-agent/java.spring-boot.mdx index ad703acc4f109..ba12d3f64f925 100644 --- a/platform-includes/performance/opentelemetry-setup/without-java-agent/java.spring-boot.mdx +++ b/platform-includes/performance/opentelemetry-setup/without-java-agent/java.spring-boot.mdx @@ -8,7 +8,7 @@ Enable the Sentry propagator for OpenTelemetry by adding the following to your S ```properties {tabTitle: application.properties} sentry.dsn=___PUBLIC_DSN___ sentry.traces-sample-rate=1.0 -otel.propagators=sentry +otel.propagators=tracecontext,baggage,sentry ``` ```yaml {tabTitle: application.yml} @@ -17,6 +17,8 @@ sentry: traces-sample-rate: 1.0 otel: propagators: + - tracecontext + - baggage - sentry ``` From d2f69128a7a2f76a91cc63f5bb5481c5d1ff6ab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 6 Jul 2026 13:56:20 +0200 Subject: [PATCH 26/29] fix(dotnet): Use correct version key for OTLP exporter package The release registry has a dedicated key for each .NET package. Use sentry.dotnet.opentelemetry.exporter instead of the base sentry.dotnet key to match the convention used by every other .NET package install command in the docs. Co-Authored-By: Claude Opus 4.6 --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 568ab63e637a5..0edd8cf32fa2e 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -12,15 +12,15 @@ The OTLP exporter configures the Sentry SDK to automatically send trace data ins Add the `Sentry.OpenTelemetry.Exporter` NuGet package to your project: ```shell {tabTitle:.NET Core CLI} -dotnet add package Sentry.OpenTelemetry.Exporter -v {{@inject packages.version('sentry.dotnet') }} +dotnet add package Sentry.OpenTelemetry.Exporter -v {{@inject packages.version('sentry.dotnet.opentelemetry.exporter') }} ``` ```powershell {tabTitle:Package Manager} -Install-Package Sentry.OpenTelemetry.Exporter -Version {{@inject packages.version('sentry.dotnet') }} +Install-Package Sentry.OpenTelemetry.Exporter -Version {{@inject packages.version('sentry.dotnet.opentelemetry.exporter') }} ``` ```shell {tabTitle:Paket CLI} -paket add Sentry.OpenTelemetry.Exporter --version {{@inject packages.version('sentry.dotnet') }} +paket add Sentry.OpenTelemetry.Exporter --version {{@inject packages.version('sentry.dotnet.opentelemetry.exporter') }} ``` This package includes the standard OpenTelemetry OTLP exporter as a transitive dependency. From c8a2cb83723891e462c49f602b0ebbefb000ec49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 6 Jul 2026 13:56:43 +0200 Subject: [PATCH 27/29] fix(go): Update OTel version floor to match current go.mod The otel/otlp/go.mod in sentry-go v0.47.0 requires go.opentelemetry.io/otel v1.43.0, not v1.40.0 as previously stated. The sentry-go v0.45.0+ minimum remains correct since that is when the OTLP exporter APIs were introduced. Co-Authored-By: Claude Opus 4.6 --- platform-includes/performance/opentelemetry-install/go.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform-includes/performance/opentelemetry-install/go.mdx b/platform-includes/performance/opentelemetry-install/go.mdx index c90c13de6dc86..fd582f1eab7c5 100644 --- a/platform-includes/performance/opentelemetry-install/go.mdx +++ b/platform-includes/performance/opentelemetry-install/go.mdx @@ -1,6 +1,6 @@ -The OTLP-based OpenTelemetry integration requires `sentry-go` v0.45.0+, Go >= 1.25, and `go.opentelemetry.io/otel` v1.40.0+. +The OTLP-based OpenTelemetry integration requires `sentry-go` v0.45.0+, Go >= 1.25, and `go.opentelemetry.io/otel` v1.43.0+. From 0730aad86718642481c2a194ae2b523b029298d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Mon, 6 Jul 2026 14:32:40 +0200 Subject: [PATCH 28/29] revert(dotnet): Restore sentry.dotnet version key for OTLP exporter The dedicated sentry.dotnet.opentelemetry.exporter key exists in the per-package API but is absent from the bulk /sdks endpoint that the build fetches. Since all .NET Sentry packages are versioned in lockstep, sentry.dotnet resolves correctly. Co-Authored-By: Claude Opus 4.6 --- .../common/tracing/instrumentation/opentelemetry-otlp.mdx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx index 0edd8cf32fa2e..568ab63e637a5 100644 --- a/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx +++ b/docs/platforms/dotnet/common/tracing/instrumentation/opentelemetry-otlp.mdx @@ -12,15 +12,15 @@ The OTLP exporter configures the Sentry SDK to automatically send trace data ins Add the `Sentry.OpenTelemetry.Exporter` NuGet package to your project: ```shell {tabTitle:.NET Core CLI} -dotnet add package Sentry.OpenTelemetry.Exporter -v {{@inject packages.version('sentry.dotnet.opentelemetry.exporter') }} +dotnet add package Sentry.OpenTelemetry.Exporter -v {{@inject packages.version('sentry.dotnet') }} ``` ```powershell {tabTitle:Package Manager} -Install-Package Sentry.OpenTelemetry.Exporter -Version {{@inject packages.version('sentry.dotnet.opentelemetry.exporter') }} +Install-Package Sentry.OpenTelemetry.Exporter -Version {{@inject packages.version('sentry.dotnet') }} ``` ```shell {tabTitle:Paket CLI} -paket add Sentry.OpenTelemetry.Exporter --version {{@inject packages.version('sentry.dotnet.opentelemetry.exporter') }} +paket add Sentry.OpenTelemetry.Exporter --version {{@inject packages.version('sentry.dotnet') }} ``` This package includes the standard OpenTelemetry OTLP exporter as a transitive dependency. From d0c8913b0a180d6f04273da3c1f6b9d377ee9b49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20Daxb=C3=B6ck?= Date: Tue, 7 Jul 2026 22:46:24 +0200 Subject: [PATCH 29/29] fix(php): Remove redundant SDK packages from OTLP install commands The base Symfony and Laravel guides already assume sentry/sentry-symfony and sentry/sentry-laravel are installed. Listing them again in the OTLP integration install section is redundant and could confuse readers into thinking a separate install step is needed. Co-Authored-By: Claude Opus 4.6 --- docs/platforms/php/guides/laravel/integrations/otlp.mdx | 1 - docs/platforms/php/guides/symfony/integrations/otlp.mdx | 1 - 2 files changed, 2 deletions(-) diff --git a/docs/platforms/php/guides/laravel/integrations/otlp.mdx b/docs/platforms/php/guides/laravel/integrations/otlp.mdx index 07a75d889e267..7a621ea907040 100644 --- a/docs/platforms/php/guides/laravel/integrations/otlp.mdx +++ b/docs/platforms/php/guides/laravel/integrations/otlp.mdx @@ -18,7 +18,6 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ - sentry/sentry-laravel:"^4.25" \ open-telemetry/sdk \ open-telemetry/exporter-otlp ``` diff --git a/docs/platforms/php/guides/symfony/integrations/otlp.mdx b/docs/platforms/php/guides/symfony/integrations/otlp.mdx index 529332056675d..413ba3de7141b 100644 --- a/docs/platforms/php/guides/symfony/integrations/otlp.mdx +++ b/docs/platforms/php/guides/symfony/integrations/otlp.mdx @@ -18,7 +18,6 @@ Install the required OpenTelemetry packages via Composer: ```bash composer require \ - sentry/sentry-symfony:"^5.10" \ open-telemetry/sdk \ open-telemetry/exporter-otlp ```