Repository navigation
feat(tracing): Migrate to span streaming - #705
Open
sentrivana wants to merge 3 commits into
Open
sentrivana wants to merge 3 commits into
sentrivana wants to merge 3 commits into
Conversation
Enable trace_lifecycle="stream" and move all tracing to the sentry_sdk.traces API. The legacy transaction-based API is a no-op in streaming mode. - Replace @sentry_sdk.trace / start_span(op, description) / set_data with their streaming equivalents (sentry.op attribute, name, set_attribute). - process_message starts a top-level span in a fresh isolation scope with new_trace(), so each task keeps its own trace. Artifact IDs are set as both tags (errors) and attributes (spans, logs). - Binary-analysis worker processes now stream their own spans under the propagated parent trace, so the parent no longer rebuilds per-binary spans from worker timestamps.
Contributor
Size Analysis2 components analyzed iOS Builds
Android Builds
|
Contributor
📲 Install BuildsiOS
Android
|
ubuntu-latest now resolves to ubuntu-26.04, for which setup-python has no 3.14.4 build. The Docker image mirror only carries 3.14.4, so pin the runner until .python-version and the base images can be bumped together.
sentrivana
marked this pull request as ready for review
October 22, 2026 12:49
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Enables span streaming (
trace_lifecycle="stream") and moves all tracing to thesentry_sdk.tracesAPI. In streaming mode the legacy transaction-based API (start_transaction,start_span,@sentry_sdk.trace,continue_trace) is a silent no-op, so every call site is migrated.Note: taskbroker-client now only supports span streaming, so this brings launchpad up-to-date to allow installing newer taskbroker-client versions.
Changes
trace_lifecycle="stream"; minimumsentry-sdkbumped to>=2.70.0.@sentry_sdk.trace→@sentry_sdk.traces.trace,start_span(op=X, description=Y)→traces.start_span(name=Y, attributes={"sentry.op": X}),set_data→set_attribute.process_message: the transaction becomes a top-level span (parent_span=None). Streamed top-level spans inherit the scope's propagation context rather than generating a new trace ID like transactions did, so each task now runs in its ownisolation_scope()withtraces.new_trace(). Otherwise all tasks in a worker process would share one trace. Artifact IDs are set as tags (errors) and attributes (spans don't receive tags)._record_binary_span/_TimedBinaryare removed. We now also get the workers' child spans (Mach-O parsing etc.).binary_nameis set inside_analyze_binary, so it's also present for in-process analysis.Testing
_analyze_binaryspans are streamed into the parent trace, descend from the parent-process span, and overlap in time.