feat(core): Add SpanBuffer implementation#19204
Open
Lms24 wants to merge 3 commits intolms/feat-span-firstfrom
Open
feat(core): Add SpanBuffer implementation#19204Lms24 wants to merge 3 commits intolms/feat-span-firstfrom
SpanBuffer implementation#19204Lms24 wants to merge 3 commits intolms/feat-span-firstfrom
Conversation
Contributor
Codecov Results 📊Generated by Codecov Action |
Contributor
size-limit report 📦
|
Contributor
node-overhead report 🧳Note: This is a synthetic benchmark with a minimal express app and does not necessarily reflect the real-world performance impact in an application.
|
This was referenced Feb 6, 2026
e96091e to
a1dc134
Compare
Member
Author
|
cc @isaacs tagged you for a review since you worked on the telemetry buffer and might see something I missed in this simplified implementation |
Base automatically changed from
lms/feat-core-captureSpan
to
lms/feat-span-first
February 6, 2026 14:08
a1dc134 to
471048d
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
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.
This PR adds a simple span buffer implementation to be used for buffering streamed spans.
Behaviour:
traceId, as we must not mix up spans of different traces in one envelopeSentry.flushis calledMethods:
addaccepts a new span to be enqueued into the bufferdrainflushes the entire bufferflush(traceId)flushes a specific traceId bucket. This can be used by e.g. the browser span streaming implementation to flush out the trace of a segment span directly once it ends.Options:
maxSpanLimit- allows to configure a 0 < maxSpanLimit < 1000 custom span limit. Useful for testing but we could also expose this to users if we see a needflushInterval- allows to configure a >0 flush intervalLimitations/edge cases:
Mapis insertion order preserving, meaning we apply a FIFO strategy whendraining the trace buckets. This is in line with our develop spec for the telemetry processor but might lead to cases where new traces are dropped by the promise buffer if a lof of concurrently running traces are flushed. I think that's a fine trade off.ref #19119