feat(browser): Add spanStreamingIntegration#19218
Draft
Lms24 wants to merge 1 commit intolms/feat-core-spanBufferfrom
Draft
feat(browser): Add spanStreamingIntegration#19218Lms24 wants to merge 1 commit intolms/feat-core-spanBufferfrom
spanStreamingIntegration#19218Lms24 wants to merge 1 commit intolms/feat-core-spanBufferfrom
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 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.
to be merged after #19204
This PR adds the final big building block for span streaming functionality in the browser SDK:
spanStreamingIntegation.This integration:
traceLifecycle: 'stream'if not already set by users. This allows us to avoid the double-opt-in problem we usually have in browser SDKs because we want to keep integration tree-shakeable but also support the runtime-agnostictraceLifecycleoption.beforeSetup. This is allows us to safely modify client options before other integrations read it. We'll need this becausebrowserTracingIntegrationneeds to check for span streaming later on. Let me know what you think!beforeSendSpanis compatible with span streaming. If not, it falls back to static tracing (transactions).afterSpanEndhook. Once called, it will capture the span and hand it off to the span buffer.afterSegmentSpanEndhook. Once called it will flush the trace from the buffer to ensure we flush out the trace as soon as possible. In browser, it's more likely that users refresh or close the tab/window before our buffer's internal flush interval triggers. We don't have to do this but I figured it would be a good trigger point.While "final building block" sounds nice, there's still a lot of stuff to take care of in the browser. But with this in place we can also start integration-testing the browser SDKs.
ref #17836