You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce the `@datadog/browser-debugger` package, which provides Live
Debugger support in browser applications. Frontend developers can attach
log probes to running applications, evaluate conditions, and inspect
runtime state without redeploying or modifying source code.
The package is published privately for now (excluded from generated docs
via `typedoc.json`).
The probe execution pipeline lives entirely on the client: instrumented
code calls into hooks exposed on `globalThis` (`$dd_entry`,
`$dd_return`, `$dd_throw`, `$dd_probes`), and the SDK is responsible
for evaluating probe conditions, capturing snapshots of arguments,
locals, return values, and thrown errors, rendering template messages
against runtime context, applying per-probe and global rate limits, and
shipping the resulting events to the logs intake. To keep that hot path
predictable, expressions, conditions, and message templates are
compiled once at probe registration and the capture logic enforces
explicit depth, collection-size, and string-length bounds.
Probes themselves are pulled from a Delivery API via a cursor-based
polling client, so probe lifecycle (add/remove/clear) is driven by the
backend rather than the page. Event delivery reuses
`@datadog/browser-core`'s batch/flush transport infrastructure, which
required a small core change: the transport layer now accepts
`'dd_debugger'` as a URL-only source override so events route correctly
in the intake without widening the public RUM `source` surface.
To validate behavior and guard against regressions, the change also
introduces E2E scenarios covering snapshot delivery, value capture,
exception handling, template and condition evaluation, and RUM
correlation, plus a dedicated instrumentation-overhead benchmark that
stress-tests the hooks against the real built bundle (rather than
stubs) so the per-call cost we track is the cost customers will
actually pay.
0 commit comments