[do not merge] feat: Span streaming & new span API #5317
+704
−3
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduce a new
tracing.start_span()with a streamlined signature to eventually replace the originalsentry_sdk.start_span()andsentry_sdk.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.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: Coming soon in #5318
TODOs
Notes
trace_id(we can't send spans from different traces in the same envelope).Spanand drop the newStreamedSpanintracing.pyas a replacement.Release Plan
sentry_sdk.start_span()to the new API.Project
https://linear.app/getsentry/project/span-first-sdk-python-727da28dd037/overview