This issue tracks steps for getting getsentry/sentry-javascript#17852 step by step into a reviewed and cleaned up state. - [X] Span and envelope type definitions ([#19100](<https://github.com/getsentry/sentry-javascript/issues/19100>)) - [X] Public API to opt into span streaming ([getsentry/sentry-javascript#19120](<https://github.com/getsentry/sentry-javascript/issues/19120>)) - [X] Span Serialization Utilities ([getsentry/sentry-javascript#19140](<https://github.com/getsentry/sentry-javascript/issues/19140>)) - [X] Span envelope creation ([getsentry/sentry-javascript#19153](<https://github.com/getsentry/sentry-javascript/issues/19153>)) - [X] `captureSpan` pipeline ([https://github.com/getsentry/sentry-javascript/pull/19197](<https://github.com/getsentry/sentry-javascript/pull/19197>)) - [X] `SpanBuffer` implementation ([https://github.com/getsentry/sentry-javascript/pull/19204](<https://github.com/getsentry/sentry-javascript/pull/19204>)) - [X] Browser-specific span streaming integration ([getsentry/sentry-javascript#19218](<https://github.com/getsentry/sentry-javascript/issues/19218>)) - [X] Browser integration tests (getsentry/sentry-javascript#19581) - [X] **PR 17: OpenTelemetry StreamingSpanExporter** - New streaming exporter for OpenTelemetry integration - [X] **PR 14: Core spanStreamingIntegration (Server)** - New server-side span streaming integration - [X] **PR 23: SDK Re-exports (withStreamSpan)** - Export `withStreamSpan` from browser, node, and node-core packages - [x] **PR 13: shouldIgnoreSpan and reparentChildSpans Updates** - Update to support both SpanJSON and SpanV2JSON To do: - [ ] **PR 15: requestDataIntegration Span Streaming Support** - Add `processSegmentSpan` hook handler - [ ] **PR 16: nodeContextIntegration Updates** - Set contexts on global scope, update span scope on spanEnd - [ ] **PR 19: Browser httpContextIntegration Updates** - Add `processSegmentSpan` hook for span streaming - [ ] **PR 20: Browser Web Vitals as Attributes (CLS, LCP)** - Use `startInactiveSpan` with attributes for CLS/LCP - [ ] **PR 21: Browser Web Vitals INP and TTFB Updates** - Send INP as V2 span when streaming, set web vitals as attributes - [ ] **PR 22: browserTracingIntegration Updates** - Deprecate standalone span options, use `hasSpanStreamingEnabled` - [ ] **PR 26: Node Integration Tests for Span Streaming** - Integration tests for default span streaming and ignoreSpans - [ ] **PR 28: Size Limit and Cleanup** - Update size limits and add changelog entries
This issue tracks steps for getting #17852 step by step into a reviewed and cleaned up state.
Span and envelope type definitions (#19100)
Public API to opt into span streaming (getsentry/sentry-javascript#19120)
Span Serialization Utilities (getsentry/sentry-javascript#19140)
Span envelope creation (getsentry/sentry-javascript#19153)
captureSpanpipeline (feat(core): AddcaptureSpanpipeline and helpers #19197)SpanBufferimplementation (feat(core): AddSpanBufferimplementation #19204)Browser-specific span streaming integration (getsentry/sentry-javascript#19218)
Browser integration tests (test(browser): Add span streaming integration tests #19581)
PR 17: OpenTelemetry StreamingSpanExporter - New streaming exporter for OpenTelemetry integration
PR 14: Core spanStreamingIntegration (Server) - New server-side span streaming integration
PR 23: SDK Re-exports (withStreamSpan) - Export
withStreamSpanfrom browser, node, and node-core packagesPR 13: shouldIgnoreSpan and reparentChildSpans Updates - Update to support both SpanJSON and SpanV2JSON
To do:
processSegmentSpanhook handlerprocessSegmentSpanhook for span streamingstartInactiveSpanwith attributes for CLS/LCPhasSpanStreamingEnabled