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.

Install the required OpenTelemetry packages via Composer:

Copied
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.

For the Sentry SDK, add the OTLPIntegration to your existing configuration.

Copied
\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(),
    ],
]);

Under the hood, the OTLPIntegration sets up the following parts:

  • A SpanExporter 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 for details.

You can pass the following arguments to the OTLPIntegration constructor:

  • setupOtlpTracesExporter (bool):

    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.

  • 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.

  • PHP: 8.1+ (required by the OpenTelemetry SDK)
  • sentry/sentry: 4.23.0+
Was this helpful?
Help improve this content
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").