Skip to content

[do not merge] feat: Span streaming & new span API - #5551

Closed
sentrivana wants to merge 217 commits into
masterfrom
feat/span-first
Closed

[do not merge] feat: Span streaming & new span API#5551
sentrivana wants to merge 217 commits into
masterfrom
feat/span-first

Conversation

@sentrivana

Copy link
Copy Markdown
Contributor

Introduce a new start_span() API with a simpler and more intuitive signature to eventually replace the original start_span() and start_transaction() APIs.

Additionally, introduce a new streaming mode (sentry_sdk.init(_experiments={"trace_lifecycle": "stream"})) that will send spans as they finish, rather than by transaction.

importsentry_sdksentry_sdk.init(
_experiments={"trace_lifecycle": "stream"},
)
withsentry_sdk.traces.start_span(name="my_span"):
...

The new API MUST be used with the new streaming mode, and the old API MUST be used in the legacy non-streaming (static) mode.

Migration guide:getsentry/sentry-docs#16072

Notes

  • The diff is huge mostly because I've optimized for easy removal of legacy code in the next major, deliberately duplicating a lot. I'll of course split it up to reviewable PRs once ready.
    • Chose to go with a new file and a new span class so that we can just remove the old Span and drop the new StreamedSpan in tracing.py as a replacement.
  • The batcher for spans is a bit different from the logs and metrics batchers because it needs to batch by trace_id (we can't send spans from different traces in the same envelope).

Release Plan

  • There will be prereleases for internal testing.
  • We'll release the new API in a minor version as opt-in.
  • In the next major, we'll drop the legacy API.

Project

https://linear.app/getsentry/project/span-first-sdk-python-727da28dd037/overview

Comment threadsentry_sdk/scope.py
Comment threadsentry_sdk/scope.py
Comment threadsentry_sdk/integrations/openai_agents/utils.py Outdated
@sentrivana
sentrivana deleted the feat/span-first branch July 23, 2026 09:51
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sentrivana@sl0thentr0py