OpenTelemetry (OTLP)
Learn about using OTLP to automatically send OpenTelemetry Traces to Sentry.
The OTLP integration configures the Sentry SDK to automatically send trace data instrumented by an OpenTelemetry SDK to Sentry's OpenTelemetry Protocol ingestion endpoint.
Mutually Exclusive With Sentry Tracing
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 the required OpenTelemetry packages via Composer:
composer require \
open-telemetry/sdk \
open-telemetry/exporter-otlp
composer require \
open-telemetry/sdk \
open-telemetry/exporter-otlp
You need to configure both the OpenTelemetry and Sentry SDKs to get trace data.
For the OpenTelemetry SDK, you need to configure instrumentation you want to capture.
Add the OTLPIntegration class to the integrations array in config/sentry.php:
config/sentry.php'integrations' => [
\Sentry\Integration\OTLPIntegration::class,
],
'integrations' => [
\Sentry\Integration\OTLPIntegration::class,
],
Under the hood, the OTLPIntegration sets up the following parts:
- A
SpanExporterthat 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 settraces_sample_rate,traces_sampler, orenable_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 for details.
For details on available options (setupOtlpTracesExporter, collectorUrl), see the OTLP integration docs.
- PHP: 8.1+
- sentry/sentry-laravel: 4.25.0+
- open-telemetry/sdk: 1.0+
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").