---
title: "Sentry with OTel"
description: "Learn how to link Sentry SDK traces with OpenTelemetry instrumented services."
url: https://docs.sentry.io/concepts/otlp/sentry-with-otel/
---

# Sentry with OTel

If you're using both Sentry SDKs and OpenTelemetry instrumentation, you can link them together for end-to-end [distributed tracing](https://docs.sentry.io/concepts/key-terms/tracing/distributed-tracing.md).

## [Linking Sentry and OTLP Traces](https://docs.sentry.io/concepts/otlp/sentry-with-otel.md#linking-sentry-and-otlp-traces)

If you have a Sentry SDK on your frontend or mobile app making requests to an OTLP-instrumented backend, enable `propagateTraceparent` in your SDK initialization to link them into a single distributed trace. This sends the W3C `traceparent` header with outgoing requests, which your OTLP-instrumented backend will pick up and continue.

This gives you end-to-end visibility:

The following SDKs support the `propagateTraceparent` option:

### [JavaScript](https://docs.sentry.io/concepts/otlp/sentry-with-otel.md#javascript)

* [![javascript.browser icon](https://docs.sentry.io/_next/static/media/javascript.d53aab1f.svg)Browser JavaScript](https://docs.sentry.io/platforms/javascript/configuration/options.md#propagateTraceparent)
* [![javascript.angular icon](https://docs.sentry.io/_next/static/media/angularjs.8e98e235.svg)Angular](https://docs.sentry.io/platforms/javascript/guides/angular/configuration/options.md#propagateTraceparent)
* [![javascript.astro icon](https://docs.sentry.io/_next/static/media/astro.3cb960c2.svg)Astro](https://docs.sentry.io/platforms/javascript/guides/astro/configuration/options.md#propagateTraceparent)
* [![javascript.ember icon](https://docs.sentry.io/_next/static/media/ember.9862ba42.svg)Ember](https://docs.sentry.io/platforms/javascript/guides/ember/configuration/options.md#propagateTraceparent)
* [![javascript.gatsby icon](https://docs.sentry.io/_next/static/media/gatsby.d1e74154.svg)Gatsby](https://docs.sentry.io/platforms/javascript/guides/gatsby/configuration/options.md#propagateTraceparent)
* [![javascript.nextjs icon](https://docs.sentry.io/_next/static/media/nextjs.27669790.svg)Next.js](https://docs.sentry.io/platforms/javascript/guides/nextjs/configuration/options.md#propagateTraceparent)
* [![javascript.nuxt icon](https://docs.sentry.io/_next/static/media/nuxt.90663273.svg)Nuxt](https://docs.sentry.io/platforms/javascript/guides/nuxt/configuration/options.md#propagateTraceparent)
* [![javascript.react icon](https://docs.sentry.io/_next/static/media/react.e3c301d5.svg)React](https://docs.sentry.io/platforms/javascript/guides/react/configuration/options.md#propagateTraceparent)

###  

* [![javascript.react-router icon](https://docs.sentry.io/_next/static/media/react-router.e30ce352.svg)React Router](https://docs.sentry.io/platforms/javascript/guides/react-router/configuration/options.md#propagateTraceparent)
* [![javascript.remix icon](https://docs.sentry.io/_next/static/media/remix.27fc09d0.svg)Remix](https://docs.sentry.io/platforms/javascript/guides/remix/configuration/options.md#propagateTraceparent)
* [![javascript.solid icon](https://docs.sentry.io/_next/static/media/solid.398fcbf4.svg)Solid](https://docs.sentry.io/platforms/javascript/guides/solid/configuration/options.md#propagateTraceparent)
* [![javascript.solidstart icon](https://docs.sentry.io/_next/static/media/solidstart.a4c37fbe.svg)SolidStart](https://docs.sentry.io/platforms/javascript/guides/solidstart/configuration/options.md#propagateTraceparent)
* [![javascript.svelte icon](https://docs.sentry.io/_next/static/media/svelte.d8e9a29b.svg)Svelte](https://docs.sentry.io/platforms/javascript/guides/svelte/configuration/options.md#propagateTraceparent)
* [![javascript.sveltekit icon](https://docs.sentry.io/_next/static/media/svelte.d8e9a29b.svg)SvelteKit](https://docs.sentry.io/platforms/javascript/guides/sveltekit/configuration/options.md#propagateTraceparent)
* [![javascript.vue icon](https://docs.sentry.io/_next/static/media/vue.2bb828dc.svg)Vue](https://docs.sentry.io/platforms/javascript/guides/vue/configuration/options.md#propagateTraceparent)
* [![javascript.wasm icon](https://docs.sentry.io/_next/static/media/wasm.1533893e.svg)Wasm](https://docs.sentry.io/platforms/javascript/guides/wasm/configuration/options.md#propagateTraceparent)

### [Mobile](https://docs.sentry.io/concepts/otlp/sentry-with-otel.md#mobile)

* [![android icon](https://docs.sentry.io/_next/static/media/android.b3576036.svg)Android](https://docs.sentry.io/platforms/android/configuration/options.md#propagateTraceparent)
* [![dart.flutter icon](https://docs.sentry.io/_next/static/media/flutter.b7cd4dd4.svg)Flutter](https://docs.sentry.io/platforms/dart/guides/flutter/configuration/options.md#propagateTraceparent)
* [![native icon](https://docs.sentry.io/_next/static/media/nativec.2ce68873.svg)Native](https://docs.sentry.io/platforms/native/configuration/options.md#propagate_traceparent)
* [![react-native icon](https://docs.sentry.io/_next/static/media/react-native.a5e5ad76.svg)React Native](https://docs.sentry.io/platforms/react-native/configuration/options.md#propagateTraceparent)

## [OTLP Integration](https://docs.sentry.io/concepts/otlp/sentry-with-otel.md#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.

* [![javascript.node icon](https://docs.sentry.io/_next/static/media/nodejs.79546009.svg)Node.js](https://docs.sentry.io/platforms/javascript/guides/node/install/lightweight.md#using-with-opentelemetry-otlp)
* [![python icon](https://docs.sentry.io/_next/static/media/python.94740f0e.svg)Python](https://docs.sentry.io/platforms/python/integrations/otlp.md)
* [![ruby icon](https://docs.sentry.io/_next/static/media/ruby.07144e67.svg)Ruby](https://docs.sentry.io/platforms/ruby/integrations/otlp.md)

Coming Soon:

* [![go icon](https://docs.sentry.io/_next/static/media/go.ac6569f8.svg)Go](https://docs.sentry.io/concepts/otlp/sentry-with-otel.md#otlp-integration)
* [![php icon](https://docs.sentry.io/_next/static/media/php.2bb9a6cf.svg)PHP](https://docs.sentry.io/concepts/otlp/sentry-with-otel.md#otlp-integration)
