Skip to content

Conversation

@mormubis
Copy link
Contributor

  • docs: map existing codebase
  • feat: implement telemetry split initialization pattern
  • feat: add RUM telemetry collection in preStart
  • feat: integrate RUM transport in start phase
  • test: add comprehensive test suite for telemetry initialization
  • chore: clean up planning artifacts

Motivation

Changes

Test instructions

Checklist

  • Tested locally
  • Tested on staging
  • Added unit tests for this change.
  • Added e2e/integration tests for this change.

- 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
@github-actions
Copy link


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


1 out of 2 committers have signed the CLA.
✅ (mormubis)[https://github.com/mormubis]
@claude Code
Claude Code seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Jan 22, 2026

Bundles Sizes Evolution

📦 Bundle Name Base Size Local Size 𝚫 𝚫% Status
Rum 165.78 KiB 165.93 KiB +149 B +0.09%
Rum Profiler 4.33 KiB 4.33 KiB 0 B 0.00%
Rum Recorder 24.48 KiB 24.48 KiB 0 B 0.00%
Logs 56.21 KiB 56.31 KiB +103 B +0.18%
Flagging 944 B 944 B 0 B 0.00%
Rum Slim 123.05 KiB 123.18 KiB +134 B +0.11%
Worker 23.63 KiB 23.63 KiB 0 B 0.00%
🚀 CPU Performance
Action Name Base CPU Time (ms) Local CPU Time (ms) 𝚫%
addglobalcontext N/A 0.0069 N/A
addaction N/A 0.0227 N/A
adderror N/A 0.0216 N/A
addtiming N/A 0.0051 N/A
startview N/A 0.0046 N/A
startstopsessionreplayrecording N/A 0.0009 N/A
logmessage N/A 0.0244 N/A
🧠 Memory Performance
Action Name Base Memory Consumption Local Memory Consumption 𝚫
addglobalcontext N/A 32.25 KiB N/A
addaction N/A 107.46 KiB N/A
addtiming N/A 24.92 KiB N/A
adderror N/A 101.64 KiB N/A
startstopsessionreplayrecording N/A 29.34 KiB N/A
startview N/A 444.49 KiB N/A
logmessage N/A 102.87 KiB N/A

🔗 RealWorld

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Jan 22, 2026

⚠️ Tests

Fix all issues with Cursor

⚠️ Warnings

🧪 53 Tests failed

createTaskQueue runs as many tasks as possible in a single idle callback from Chrome Headless 139.0.0.0 (Linux 0.0.0) (Datadog) (Fix with Cursor)
Error: Jasmine Clock was unable to install over custom global timer functions. Is the clock already installed?
    at <Jasmine>
    at mockClock (/go/src/github.com/DataDog/browser-sdk/packages/core/test/emulate/mockClock.ts:12:9 <- /tmp/_karma_webpack_629274/commons.js:145444:19)
    at UserContext.<anonymous> (/go/src/github.com/DataDog/browser-sdk/packages/core/src/tools/taskQueue.spec.ts:18:28 <- /tmp/_karma_webpack_629274/commons.js:122567:71)
    at <Jasmine>
createTaskQueue runs some tasks in case of timeout from Chrome Headless 139.0.0.0 (Linux 0.0.0) (Datadog) (Fix with Cursor)
Error: Jasmine Clock was unable to install over custom global timer functions. Is the clock already installed?
    at <Jasmine>
    at mockClock (/go/src/github.com/DataDog/browser-sdk/packages/core/test/emulate/mockClock.ts:12:9 <- /tmp/_karma_webpack_629274/commons.js:145444:19)
    at UserContext.<anonymous> (/go/src/github.com/DataDog/browser-sdk/packages/core/src/tools/taskQueue.spec.ts:42:28 <- /tmp/_karma_webpack_629274/commons.js:122585:71)
    at <Jasmine>
httpRequest HttpRequestEvent observable should report failure for failing requests from Chrome Headless 139.0.0.0 (Linux 0.0.0) (Datadog) (Fix with Cursor)
Error: Timeout - Async function did not complete within 5000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    at <Jasmine>
View all

ℹ️ Info

❄️ No new flaky tests detected

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: dc1a84f | Docs | Datadog PR Page | Was this helpful? Give us feedback!

Squashes initial setup, codebase mapping, and phase 1 implementation:
- Export startTelemetryTransport from telemetry module
- Add split initialization test suite
- Fix unbuffer race condition
Implements phase 2 - RUM telemetry capture in early initialization:
- Add hooks early creation to preStartRum
- Activate telemetry collection in preStart
- Wire hooks parameter and fix re-exports
Integrates phase 3 - RUM transport with observable architecture:
- Fix observable architecture (BufferedObservable pattern)
- Add integration tests for preStart telemetry transport
- Update startTelemetryTransport to unbuffer parameter observable
Completes phase 4 - comprehensive testing and validation:
- Unit tests for RUM and Logs preStart telemetry capture
- E2E tests ensuring errors appear in first batch
- Performance tests measuring preStart overhead
Remove all temporary planning files and documentation:
- Remove .planning directory with phase plans and context
- Keep only source code and tests
@mormubis mormubis force-pushed the adlrb/another-prestart branch from aea8f79 to dc1a84f Compare January 22, 2026 13:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants