✨ Add browser tab ID to all RUM and Logs events#4184
Draft
Conversation
- STACK.md - Technologies and dependencies - ARCHITECTURE.md - System design and patterns - STRUCTURE.md - Directory layout - CONVENTIONS.md - Code style and patterns - TESTING.md - Test structure - INTEGRATIONS.md - External services - CONCERNS.md - Technical debt and issues
Introduce tabContext that generates a UUID v4 per browser tab, persisted in sessionStorage to survive reloads, with an in-memory fallback when storage is unavailable. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add _dd.browser_tab_id UUID field to the RUM common schema and the Logs event types. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Register tabContext in both RUM and Logs event assembly so every event includes _dd.browser_tab_id. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
I have read the CLA Document and I hereby sign the CLA 1 out of 2 committers have signed the CLA. |
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.
Motivation
The Browser SDK shares session state across tabs via cookies/localStorage, but has no way to identify which specific tab produced a given event. Adding
_dd.browser_tab_idenables distinguishing events from different tabs within the same session.Changes
tabContextmodule (packages/core/src/domain/contexts/tabContext.ts): Generates a UUID v4 per browser tab, persisted insessionStorageso it survives page reloads. Falls back to in-memory UUID whensessionStorageis unavailable (Web Workers, sandboxed iframes).browser_tab_idto_ddproperties in_common-schema.jsonandlogsEvent.types.ts.Assemblehook, so every event includes_dd.browser_tab_id.Behavior
sessionStoragesessionStoragesessionStorageunavailableTest instructions
```bash
yarn test:unit --spec packages/core/src/domain/contexts/tabContext.spec.ts
yarn test:unit # full suite passes
yarn typecheck
yarn lint
```
Checklist