Skip to content

feat(otel): Add docs for Python OpenTelemetry #5962

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 15, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Note>

Sentry requires `opentelemetry-distro` version `0.350b0` or higher.

</Note>

```bash
pip install --upgrade 'sentry-sdk[opentelemetry]'
```
26 changes: 26 additions & 0 deletions src/platform-includes/performance/opentelemetry-setup/python.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Initialize Sentry for tracing and set the `instrumenter` to `otel`:

```python
import sentry_sdk

sentry_sdk.init(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is anything else required for linking errors to OTEL transactions? e.g. adding an EventProcessor?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The other imports are below (this is in another mdx file) see the full page here in the preview: https://sentry-docs-git-antonpirker-opentelementry-support-python-sdk.sentry.dev/platforms/python/performance/instrumentation/opentelemetry/

(Previews are linked in the comment from the vercel bot above)

dsn="___PUBLIC_DSN___",
traces_sample_rate=1.0,
# set the instrumenter to use OpenTelemetry instead of Sentry
instrumenter="otel",
)
```

This disables all Sentry instrumentation and relies on the chosen OpenTelemetry tracers for creating spans.

Next, configure OpenTelemetry as you need and hook in the Sentry span processor and propagator:

```python
from opentelemetry import trace
from opentelemetry.propagate import set_global_textmap
from sentry_sdk.integrations.opentelemetry import SentrySpanProcessor, SentryPropagator

provider = trace.get_tracer_provider()
provider.add_span_processor(SentrySpanProcessor())
set_global_textmap(SentryPropagator())
```
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
title: OpenTelemetry Support
sidebar_order: 20
supported:
- node
- javascript.nextjs
- node
- python
- ruby
notSupported:
- javascript
- python
- dart
- flutter
- react-native
Expand Down