SDK 3.0: Performance powered by OpenTelemetry
Description
Python SDK will use OpenTelemetry under the hood for spans/tracing. This switch will eventually allow us to:
- add auto-instrumentation support for more libraries and frameworks
- benefit from upstream bugfixes, integrations, features
- be part of the OTel community
- reduce our maintenance burden
In/Out of Scope
In Scope:
- Releasing a new major version of the SDK with tracing powered by OpenTelemetry
- A smooth migration path with backwards-compatible API
Out of Scope:
- Errors-only version of the SDK https://github.com/getsentry/projects/issues/405
- Adopting OTel instrumentation https://github.com/getsentry/projects/issues/406
Success Criteria
- New SDK being adopted at a pace comparable with our 2.0 release.
Timeframe
Estimated GA: May 2025
See also
Status update: see https://github.com/getsentry/projects/issues/74#issuecomment-2454606063
The brunt of the work is done, some details still need fixing We're now making sure all our integrations still work the same and CI passes After that we'll do the following: - Polishing code structure and APIs to final releasable state - Manual testing - Dogfooding
We're continuing the work on fixing up our integration test suites and migrating sampling context to use span attributes.
Once the CI is mostly green, we'll sit down and make a plan for the next steps, which are:
- polishing the SDK into a final releasable state
- manual testing
- making a prerelease available
- preparing Sentry for dogfooding, actually doing the dogfooding and fixing whatever comes up
This project has been split into three projects. This issue is now tracking the first project (full-featured OTel SDK). The follow up projects are:
- https://github.com/getsentry/projects/issues/405
- https://github.com/getsentry/projects/issues/406
Continuing the work from last week: fixing CI & adapting tests, and migrating sampling context (almost done). Progress might be slow this week since multiple people are on sick leave.
Hey @Jeffreyhung! Could you please move this issue for us to the sentry-python repository? 🙏
Continuing work on finishing milestones 2 & 3 (building infrastructure & fixing integrations). Continuing with the sampling context both for tracing and for profiling and fixing more CI.
No update -- last week was triage week
Slow progress over the holidays. Gearing up to pick up where we left off -- fixing CI, and then next week when the whole team's back we'll have a kick-off session for the next steps working towards the first prerelease.
Synced to clarify the way to the first alpha. Categorized what we want done before the alpha is out (code cleanup, fixing CI including linting, migration guide in the docs, some manual testing) and what can wait (general docs update). Cleaned up the milestones and issues.
Currently finishing fixing integration tests (one remaining), the next big step is code cleanup.
Our test suite on the POTel branch is green!
We are now working on cleaning up the code (replacing the old Span/Transaction classes with our new POTelSpan, moving OTel code out of integrations where it originally was to a more prominent place now that it's an integral part of the SDK) and fixing whatever issues our linter and type checker surface.
We've also prepared a comprehensive pre-alpha test plan.
The CI is now all green -- not just tests, but also linting and API docs.
We're continuing with the code cleanup (see previous comment). After that it's manual testing time.
No progress last week, we were focusing on a handful of SDK-wide initiatives.
Same as the week before, no progress on POTel last week, we were still finishing up with the SDK-wide initiatives and couple people were OOO.
Sprinkling some POTel work throughout the still ongoing SDK-wide initiatives this week. Continuing with cleanup. We also started porting recent changes from master to the potel branch.
Last week we were working on porting some of the master changes to the potel branch. We'll continue this week.
Bug bash on master last week, this week as well. Minimal potel progress.
Last week we were mostly continuing with the bug bash, but also cut out some time for POTel:
- synced the POTel base branch with current master
- ported the new Sentry logging experience to POTel
- picked up porting
sample_randagain which is the biggest reason tests are failing on the POTel branch, chipping away at failing test cases
The remaining changes from master were ported last week (sample_rand and profiler). CI is now green again.
Finishing up with the clean up this week, ready for the first alpha release next week or the week after (we still want to do some manual testing).
Integrating different otel versions into our ci and starting manual testing this week.
Prepared a migration guide for the docs to release with the alpha. Continuing with manual testing and fixing issues we've found.
Continuing with manual testing, fixing minor issues and gearing up for our first alpha release this week. The migration guide is ready to go as well.