Skip to content

[demo split #4449] 5/5 — Add instrumentation overhead benchmarks#4536

Draft
allspain wants to merge 1 commit intoallspain/debug-5296-e2e-scenariosfrom
allspain/debug-5296-perf-benchmarks
Draft

[demo split #4449] 5/5 — Add instrumentation overhead benchmarks#4536
allspain wants to merge 1 commit intoallspain/debug-5296-e2e-scenariosfrom
allspain/debug-5296-perf-benchmarks

Conversation

@allspain
Copy link
Copy Markdown
Collaborator

@allspain allspain commented Apr 28, 2026

DEMO — split of #4449. This is one of 5 stacked draft PRs that breaks
#4449 — Add Live Debugger package
into reviewable increments. Original PR is untouched. This stack is for
demonstrating tooling (jj split for the surgery, gh for the stack);
all of the underlying code is Thomas Watson's work and credited via
Co-authored-by: trailers.

Stack

  1. [demo split #4449] 1/5 — Foundation: expose core hooks for the live debugger package #4532 — Foundation — expose core hooks for the live debugger package (12 files / +56-10)
  2. [demo split #4449] 2/5 — Add @datadog/browser-debugger package #4533 — Package — add @datadog/browser-debugger (25 files / +6433)
  3. [demo split #4449] 3/5 — Extend e2e framework for the debugger package #4534 — E2E framework — extend test framework for the debugger package (12 files / +129-8)
  4. [demo split #4449] 4/5 — Add debugger e2e scenarios #4535 — E2E scenarios — add debugger e2e scenarios (3 files / +318-2)
  5. [demo split #4449] 5/5 — Add instrumentation overhead benchmarks #4536 — Perf benchmarks — add instrumentation overhead benchmarks (12 files / +1222-9) ← you are here

Each PR's base branch is the previous PR's head, so reviewing in order is
the intended path. Stack constructed with jj:
all 4 commits from #4449 were squashed into one change, then peeled into 5
with jj split <paths>, then pushed with jj git push.


What this PR contains (5/5 — Perf benchmarks)

Performance benchmark measuring the runtime overhead of debugger
instrumentation hooks. Independent of the E2E scenarios in PR 4 in concept,
but stacked behind it for review-order linearity.

Changes

  • test/apps/instrumentation-overhead/ — webpack test app with
    instrumented vs uninstrumented function variants.
  • test/performance/scenarios/instrumentationOverhead.scenario.ts
    benchmark scenario stress-testing 10M function calls to measure hook
    overhead.
  • test/performance/createBenchmarkTest.ts — extended with
    instrumented_no_probes and instrumented_with_probes scenario configs
    and a dedicated injectDebugger function.
  • test/performance/profiling.type.ts, server.ts — wiring.

12 files, +1222 / -9.

Tests

yarn build:apps && yarn test:performance.

Original author: Thomas Watson <thomas.watson@datadoghq.com> (split of #4449)
Co-authored-by: Thomas Watson <thomas.watson@datadoghq.com>
@github-actions
Copy link
Copy Markdown


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you 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


Rick Klein 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.

@datadog-datadog-prod-us1
Copy link
Copy Markdown

datadog-datadog-prod-us1 Bot commented Apr 28, 2026

Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 76.66% (-0.01%)

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

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.

1 participant