Skip to content

v5.105.0 proposal#8708

Merged
rochdev merged 125 commits into
v5.xfrom
v5.105.0-proposal
May 29, 2026
Merged

v5.105.0 proposal#8708
rochdev merged 125 commits into
v5.xfrom
v5.105.0-proposal

Conversation

@dd-octo-sts
Copy link
Copy Markdown
Contributor

@dd-octo-sts dd-octo-sts Bot commented May 29, 2026

  • [1382cfd4de] - (SEMVER-PATCH) ci(project): remove supported integrations push jobs (Juan Antonio Fernández de Alba) #8707
  • [947a5360d2] - (SEMVER-PATCH) chore(deps): bump axios from 1.15.2 to 1.16.0 in /integration-tests/webpack in the npm_and_yarn group across 1 directory (dependabot[bot]) #8705
  • [f1543762c4] - (SEMVER-MINOR) revert: feat(http,http2): apply http.endpoint and queryStringObfuscation to client spans (feat(http,http2): apply http.endpoint and queryStringObfuscation to client spans #8407) (Ruben Bridgewater) #8706
  • [68619de614] - (SEMVER-PATCH) perf(encode): consolidate the msgpack hot path (Ruben Bridgewater) #8504
  • [130446e69c] - (SEMVER-PATCH) perf(format): split addTag into typed helpers to kill throwaway {} al… (Ruben Bridgewater) #8513
  • [4c88a9753d] - (SEMVER-PATCH) fix(mongodb): unify obfuscateQuery sanitizer and speed up query tagging (Ruben Bridgewater) #8703
  • [cfb2f0113e] - (SEMVER-PATCH) chore(cypress): bump latest test version (Juan Antonio Fernández de Alba) #8701
  • [a8496bd01e] - (SEMVER-PATCH) fix(jest): report coverage metric without skipped suites (Juan Antonio Fernández de Alba) #8702
  • [c6be3b9c47] - (SEMVER-PATCH) fix(jest): gate coverage backfill by jest version (Juan Antonio Fernández de Alba) #8700
  • [c2810de6f3] - (SEMVER-MINOR) feat(cypress): report TIA line coverage totals in cypress (Juan Antonio Fernández de Alba) #8453
  • [42a4f4f24b] - (SEMVER-PATCH) ci: add retry with 60s delay to coverage, dd-sts-api-key, and node actions (Roch Devost) #8694
  • [7d1aa519a6] - (SEMVER-PATCH) docs(types): add missing properties into v5 ts file (Pablo Erhard) #8692
  • [4b2f5d2908] - (SEMVER-PATCH) fix(hono): set resource name for single-handler routes (William Conti) #8100
  • [42151577da] - (SEMVER-PATCH) chore(deps): update @apm-js-collab/code-transformer to 0.13.0 (Roch Devost) #8631
  • [328a44dd02] - (SEMVER-PATCH) ci(test-optimization): fix flaky cypress@latest before-hook timeout (Roch Devost) #8666
  • [8f1897b169] - (SEMVER-PATCH) fix(ci): rerun only failed jobs for cancelled workflows in all-green (Roch Devost) #8673
  • [3ed178ced1] - (SEMVER-PATCH) test(appsec): drain preload span before RASP SSRF axios tests (Roch Devost) #8652
  • [845d19d793] - (SEMVER-PATCH) ci: simplify pr-title workflow triggers and condition (Roch Devost) #8695
  • [9f9bcccd44] - (SEMVER-PATCH) fix(ci): cancel running workflows on all-green timeout, reduce retries and initial delay (Roch Devost) #8674
  • [5f75d2afae] - (SEMVER-PATCH) test(debugger): fix zombie processes causing flaky redact tests on Node.js 20 (Roch Devost) #8663
  • [90ac905be3] - (SEMVER-MINOR) feat(openfeature): add FFE span enrichment for APM traces (Sameeran Kunche) #8343
  • [0a7f3e0589] - (SEMVER-PATCH) chore(ci): fold codeowners-audit and verify-exercised-tests into npm run lint (Ruben Bridgewater) #8686
  • [0bae706bec] - (SEMVER-PATCH) fix(ts): add interface DatabaseInstrumentation into v5 ts file (Pablo Erhard) #8690
  • [e2b0fdcccf] - (SEMVER-PATCH) docs(llmobs): drop restated category rules from the LLMObs skills (Ruben Bridgewater) #8687
  • [11cb345d76] - (SEMVER-MINOR) feat(nats): experimental support for @nats-io/nats-core / @nats-io/transport-node (Thomas Hunter II) #8608
  • [68443e431c] - (SEMVER-PATCH) ci(profiling): capture Windows crash dumps via WER LocalDumps (Attila Szegedi) #8593
  • [c7e114cb1d] - (SEMVER-PATCH) fix(debugger): generalize @-prefix ref desugaring (Thomas Watson) #8628
  • [1c71ca14b7] - (SEMVER-PATCH) ci: install gpg before Codecov upload to fix intermittent failures (Roch Devost) #8487
  • [1d0301cd92] - (SEMVER-PATCH) fix(oracledb): keep caller SQL when tracing is suppressed (Ruben Bridgewater) #8685
  • [e50934bc8c] - (SEMVER-PATCH) ci(test-optimization): install Chrome in Docker image for Selenium tests (Roch Devost) #8669
  • [8cb2b7711f] - (SEMVER-PATCH) bench(encode): make the encoding bench reflect a real Node.js HTTP request (Ruben Bridgewater) #8668
  • [d3bea48de9] - (SEMVER-PATCH) ci(pr-title): allow bench as a Conventional Commits type (Ruben Bridgewater) #8683
  • [d885382d88] - (SEMVER-MINOR) feat(aiguard): evaluate openai SDK calls automatically (Alberto Vara) #8053
  • [5a08c20f35] - (SEMVER-MINOR) [test optimization] report ITR line coverage totals in cucumber (Juan Antonio Fernández de Alba) #8452
  • [19252d91e5] - (SEMVER-PATCH) chore(ci): Download authanywhere binary over https (Rithika Narayan) #8688
  • [707b21a534] - (SEMVER-MINOR) [test optimization] prevent payload loss (Sebastián Kay) #8658
  • [a611dc5a06] - (SEMVER-MINOR) [test optimization] report ITR line coverage totals in mocha (Juan Antonio Fernández de Alba) #8450
  • [485a6474a3] - (SEMVER-MINOR) [test optimization] report TIA line coverage totals in jest (Juan Antonio Fernández de Alba) #8541
  • [aba729a656] - (SEMVER-PATCH) fix(ci): install Playwright browser dependencies (Juan Antonio Fernández de Alba) #8671
  • [664d873abb] - (SEMVER-PATCH) ci: pin all Windows runners to windows-2022 (Roch Devost) #8675
  • [e6dc6753de] - (SEMVER-PATCH) perf(pino): inject dd into the JSON line, skip the Proxy view (Ruben Bridgewater) #8501
  • [f99bb7a8f7] - (SEMVER-PATCH) fix(llmobs): cover every LLMObs span registration with OTel bridge tags (MLOS-591) (Zachary Groves)
  • [78ecd98e06] - (SEMVER-PATCH) perf(plugins/util/web): trim request-lifecycle helper work (Ruben Bridgewater) #8492
  • [f0e4773115] - (SEMVER-MINOR) feat(tracing): stamp manual spans through span.finish() resolution (Pablo Erhard) #8621
  • [55ed50f87e] - (SEMVER-MINOR) feat(http,http2): apply http.endpoint and queryStringObfuscation to client spans (Ruben Bridgewater) #8407
  • [696841f8cc] - (SEMVER-PATCH) perf(graphql): tighten resolver execute hot path (Ruben Bridgewater) #8498
  • [5c43988b36] - (SEMVER-PATCH) chore: update protobufjs, ttlcache, and code-transformer (Ruben Bridgewater) #8656
  • [75b7743aa2] - (SEMVER-PATCH) perf(span): write tags directly on _tags in setTag and addTags (Ruben Bridgewater) #8507
  • [f9016be6a8] - (SEMVER-PATCH) perf(fastify): fast-path addHook wrapper when no parser channels have… (Ruben Bridgewater) #8516
  • [33a821da2b] - (SEMVER-PATCH) chore(release): replace semver-major exclusion with only-land-on-next label (Roch Devost) #8660
  • [a8a566d308] - (SEMVER-PATCH) test(profiling): stabilize Poisson sampling filter spec (Attila Szegedi) #8659
  • [5344d3f2cd] - (SEMVER-MINOR) feat: add Node.js 26 support (Ruben Bridgewater) #8429
  • [2516fe8981] - (SEMVER-PATCH) ci(playwright): install libatomic for Node 26 (Juan Antonio Fernández de Alba) #8657
  • [d87533afc0] - (SEMVER-PATCH) fix(ci): add unzip to Playwright Docker image (Roch Devost) #8615
  • [a1fa4434ec] - (SEMVER-PATCH) fix(dbm): rename _dd.dbm.propagation_hash to _dd.propagated_hash (Thomas Hunter II) #8643
  • [2c1d5ae3cc] - (SEMVER-PATCH) fix(plugins): scope extractIp per-plugin instead of module-level (Ruben Bridgewater) #8508
  • [fe7d7a35f2] - (SEMVER-PATCH) chore(deps-dev): bump eslint-plugin-jsdoc from 62.9.0 to 63.0.0 (dependabot[bot]) #8648
  • [94c23b4bee] - (SEMVER-PATCH) chore(deps): bump the gh-actions-packages group across 3 directories with 3 updates (dependabot[bot]) #8649
  • [b210ba395b] - (SEMVER-PATCH) chore(deps): bump oxc-parser from 0.130.0 to 0.132.0 in the runtime-minor-and-patch-dependencies group across 1 directory (dependabot[bot]) #8647
  • [3e7de49119] - (SEMVER-PATCH) chore(deps-dev): bump the dev-minor-and-patch-dependencies group across 1 directory with 3 updates (dependabot[bot]) #8646
  • [db4a61149f] - (SEMVER-PATCH) chore(deps): bump the serverless group across 1 directory with 13 updates (dependabot[bot]) #8645
  • [e6e0689155] - (SEMVER-MINOR) feat(dbm): add dynamic_service propagation mode (Andrea Marziali) #8592
  • [b7bbc4b6b3] - (SEMVER-PATCH) add workflow to validate pull request title and sync labels (Roch Devost) #8196
  • [c2470f1f26] - (SEMVER-PATCH) ci(node): replace version cache with pinned versions from test/plugins/versions (Roch Devost) #8617
  • [49f16f10fc] - (SEMVER-PATCH) test(http2): fix flaky cancelled-request span assertion (Roch Devost) #8642
  • [fb120f1b97] - (SEMVER-PATCH) test(http2): avoid port reuse in server tests (Roch Devost) #8641
  • [3e0eceb16c] - (SEMVER-PATCH) perf(profiler): skip redundant setContext under AsyncContextFrame (Attila Szegedi) #8638
  • [5a0644eb21] - (SEMVER-PATCH) perf(span): fast-path setTag for the common non-sampling case (Pablo Erhard) #8640
  • [cd7fee8ce2] - (SEMVER-MINOR) feat(dns): instrument dns.promises API (Ruben Bridgewater) #8404
  • [dd068f1764] - (SEMVER-MINOR) feat(kafkajs): instrument producer.sendBatch (Ruben Bridgewater) #8403
  • [8a377d11eb] - (SEMVER-PATCH) perf(mongodb): fast path sanitiseAndStringify for flat-primitive filters (Ruben Bridgewater) #8514
  • [6e3846019c] - (SEMVER-PATCH) perf(router): consolidate per-request state, drop redundant ALS read (Ruben Bridgewater) #8509
  • [59951d598c] - (SEMVER-PATCH) perf(propagation): cheap extract on carriers without propagation context (Ruben Bridgewater) #8511
  • [c943187407] - (SEMVER-PATCH) perf(shimmer): reuse name and length descriptor literals (Ruben Bridgewater) #8515
  • [3e9c9fb635] - (SEMVER-MINOR) feat(opentracing): tag accessor API on span context + lint rule (Bryan English) #8491
  • [cd376c2cf3] - (SEMVER-MINOR) feat(oracledb): inject DBM SQL comment (Bowen Brooks) #8481
  • [a7318b6201] - (SEMVER-PATCH) chore(deps): bump @datadog/datadog-ci from 5.16.0 to 5.17.0 in /.github/actions/datadog-ci in the runtime-minor-and-patch-dependencies group across 1 directory (dependabot[bot]) #8570
  • [9641153901] - (SEMVER-MINOR) test-optimization(feat): Add cypress command spans (analog to playwright steps) (Sebastián Kay) #8580
  • [491710ef63] - (SEMVER-PATCH) chore(deps): bump the test-optimization group across 1 directory with 8 updates (dependabot[bot]) #8623
  • [2d3ff214fc] - (SEMVER-PATCH) chore(ci) update one-pipeline (gh-worker-campaigns-3e9aa4[bot]) #8636
  • [9130e0e0c6] - (SEMVER-PATCH) fix(aws-sdk): hook @smithy/core/client.Client.send for >=3.1046 clients (Ruben Bridgewater) #8532
  • [a6e6d25603] - (SEMVER-PATCH) fix(graphql): fix field-type tag, release contexts WeakMap, and more (Ruben Bridgewater) #8502
  • [9c7cde1371] - (SEMVER-PATCH) chore(test): bump mongodb to 7.2.0 and mongoose to 9.6.2 (Ruben Bridgewater) #8533
  • [0518beee67] - (SEMVER-PATCH) perf(plugin): drop per-publish storage lookup and handler rest-spread (Ruben Bridgewater) #8512
  • [b032ef455d] - (SEMVER-PATCH) chore(deps): bump the ai-and-llm group across 1 directory with 4 updates (dependabot[bot]) #8632
  • [659ad0005a] - (SEMVER-PATCH) [test optimization] support playwright 1.60 with rewriter hooks (Juan Antonio Fernández de Alba) #8590
  • [e0b94eca0c] - (SEMVER-PATCH) fix(eslint): skip autofix on ${} in string literal (Thomas Watson) #8627
  • [eb74c995a9] - (SEMVER-PATCH) chore(deps): bump the ai-and-llm group across 1 directory with 10 updates (dependabot[bot]) #8624
  • [8b9481fca9] - (SEMVER-PATCH) chore: deactivate eslint-require-boolean-assert-message (Ruben Bridgewater) #8620
  • [5763151c0e] - (SEMVER-PATCH) test(test-optimization): replace nock with direct stub in git_metadata tests (Roch Devost) #8613
  • [b50f1cad1d] - (SEMVER-PATCH) chore(deps): bump the test-versions group across 1 directory with 2 updates (dependabot[bot]) #8622
  • [4b3a0f05c4] - (SEMVER-PATCH) chore(log): drop the orphaned StructuredLogPlugin subclass (Ruben Bridgewater) #8579
  • [59ea620f0d] - (SEMVER-PATCH) fix(ci): always write flakiness report and fire Slack notification (Roch Devost) #8609
  • [2be6d4286e] - (SEMVER-PATCH) chore(deps): bump qs from 6.15.0 to 6.15.2 (dependabot[bot]) #8612
  • [b92c5df537] - (SEMVER-PATCH) ci(coverage): patch istanbul-lib-coverage's getLineCoverage in postinstall (Ruben Bridgewater) #8576
  • [f031818d89] - (SEMVER-PATCH) chore(ci): update dd-sts-action to v1.0.3 (Roch Devost) #8603
  • [761d5a70ba] - (SEMVER-PATCH) chore(deps): bump qs from 6.15.1 to 6.15.2 in /benchmark/sirun/startup/everything-fixture in the npm_and_yarn group across 1 directory (dependabot[bot]) #8611
  • [8e57bd7d41] - (SEMVER-PATCH) fix(ci): replace setup-bun with npm install to avoid GitHub rate limits (Roch Devost) #8616
  • [de48a2db85] - (SEMVER-PATCH) fix(ci): fix azure-functions cosmosdb test regressions (Roch Devost) #8610
  • [2a1b0e4e2a] - (SEMVER-PATCH) add openai error type (Sam Brenner) #8605
  • [e7f8e7a928] - (SEMVER-PATCH) fix(ci): restore azure-cosmos lint and fix electron packaging on Node 24.16+ (Roch Devost) #8604
  • [126cb67d0d] - (SEMVER-MINOR) feat(azure/cosmos): add Azure CosmosDB integration (Rithika Narayan) #7943
  • [ae4481fabb] - (SEMVER-PATCH) test(profiling): bump OOM extension size to 20MB for Node 22+ headroom (Attila Szegedi) #8564
  • [9767d0f752] - (SEMVER-PATCH) ci(test-optimization): build versioned Playwright Docker image in GHCR (Roch Devost) #8594
  • [45462e3600] - (SEMVER-PATCH) chore(deps-dev): bump the dev-minor-and-patch-dependencies group across 1 directory with 4 updates (dependabot[bot]) #8561
  • [eed98dab7b] - (SEMVER-PATCH) chore(deps): bump uuid from 9.0.1 to 14.0.0 in /benchmark/sirun/startup/everything-fixture in the npm_and_yarn group across 1 directory (dependabot[bot]) #8596
  • [53292acb4c] - (SEMVER-PATCH) chore(deps): bump the ai-and-llm group across 1 directory with 8 updates (dependabot[bot]) #8601
  • [9013e58945] - (SEMVER-PATCH) ci: work around actions/cache windows flakiness (Roch Devost) #8584
  • [526a2183c1] - (SEMVER-PATCH) fix(electron): increase assertSomeTraces timeout for IPC window tests (Roch Devost) #8597
  • [c94e32e027] - (SEMVER-PATCH) ci: only run SSI tests on master, release proposals, and labeled PRs (Roch Devost) #8485
  • [c0a31e9bcc] - (SEMVER-PATCH) ci: structured retry and longer network-timeout for CI installs (Ruben Bridgewater) #8566
  • [e385b8a047] - (SEMVER-PATCH) ci(verify-tests): flag specs no CI invocation reaches (Ruben Bridgewater) #8543
  • [625f561c5d] - (SEMVER-PATCH) perf(http-server): reuse request ctx and cache config in plugin start (Ruben Bridgewater) #8506
  • [105fdbaef1] - (SEMVER-PATCH) bump datadog/pprof (Ilyas Shabi) #8565
  • [098e20fbf8] - (SEMVER-PATCH) bump native-iast-taint-tracking (Ilyas Shabi) #8591
  • [bcf2f1dc74] - (SEMVER-PATCH) [test optimization] normalize seed suffix in test names in jest (Juan Antonio Fernández de Alba) #8587
  • [600610bcaa] - (SEMVER-PATCH) chore(eslint): require messages on boolean test assertions (Thomas Watson) #8537
  • [3929ed654d] - (SEMVER-PATCH) fix(electron): guard find() result and increase startApp timeout (Roch Devost) #8559
  • [ce294bf9c0] - (SEMVER-PATCH) ci: fix node version cache path on Windows (Roch Devost) #8578
  • [7caa2c988a] - (SEMVER-PATCH) fix(test): retry topic creation on UNKNOWN_TOPIC_OR_PARTITION in kafkajs tests (William Conti) #8469
  • [ad4b5e7cc7] - (SEMVER-PATCH) ci: avoid Yarn quarantine for Datadog packages (Ilyas Shabi) #8577
  • [f8a60480e3] - (SEMVER-PATCH) chore: update dependabot and support ranges (Ruben Bridgewater) #8337
  • [d72f7da8c0] - (SEMVER-PATCH) chore(deps): bump the runtime-minor-and-patch-dependencies group across 1 directory with 2 updates (dependabot[bot]) #8562

BridgeAR and others added 30 commits May 29, 2026 16:34
…d off in v6 (#8319)

* refactor(span)!: gate addLink(spanContext, attributes) legacy overload off in v6

v5 keeps the OpenTracing-style positional shape; v6 only accepts `addLink({ context, attributes })` on both the OpenTracing `Span` and the OpenTelemetry bridge. Tests that exercised the legacy form switch to the canonical shape (works on both versions) or are gated with `DD_MAJOR < 6`.

* fix: convert remaining addLink call sites to canonical form

`addLink(spanContext, attrs)` no longer works on v6 — the legacy
positional overload now TypeErrors on `context._ddContext`. Several
plugins (`kafkajs`, `google-cloud-pubsub`, `azure-*`), the OTel
`addSpanPointer` helper, and the `dd-trace-api` plugin spec still
passed that shape. They switch to `addLink({ context, attributes })`,
which also works on v5. `docs/test.ts` drops the two legacy-form
lines that no longer compile against the updated type definitions, and
the `version` import in `opentracing/span.js` moves above
`./span_context` to satisfy `import/order`. A `DD_MAJOR < 6`-gated
regression test on the OpenTracing `Span` pins the legacy v5 path so
v5 coverage stays after the canonical-only conversion in the
surrounding tests.
…ss 1 directory with 2 updates (#8562)

Bumps the runtime-minor-and-patch-dependencies group with 2 updates in the / directory: [@datadog/openfeature-node-server](https://github.com/DataDog/openfeature-js-client/tree/HEAD/packages/node-server) and [oxc-parser](https://github.com/oxc-project/oxc/tree/HEAD/napi/parser).


Updates `@datadog/openfeature-node-server` from 1.1.2 to 1.2.1
- [Release notes](https://github.com/DataDog/openfeature-js-client/releases)
- [Changelog](https://github.com/DataDog/openfeature-js-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/DataDog/openfeature-js-client/commits/v1.2.1/packages/node-server)

Updates `oxc-parser` from 0.129.0 to 0.130.0
- [Release notes](https://github.com/oxc-project/oxc/releases)
- [Changelog](https://github.com/oxc-project/oxc/blob/main/napi/parser/CHANGELOG.md)
- [Commits](https://github.com/oxc-project/oxc/commits/crates_v0.130.0/napi/parser)

---
updated-dependencies:
- dependency-name: "@datadog/openfeature-node-server"
  dependency-version: 1.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: runtime-minor-and-patch-dependencies
- dependency-name: oxc-parser
  dependency-version: 0.130.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: runtime-minor-and-patch-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore: update dependabot and support ranges

Split dependabot into multiple groups so one laggy module no longer
blocks the others, refresh the test fixtures to match, and regenerate
the supported-versions output. Aerospike's `['4', '5', '6']` ->
`['>=4']` and stripe's explicit list -> `['>=9 <22']` are kept --
aerospike v7 has not shipped on npm and stripe's range collapse
covers the same set.

Multer's `^1.4.4-lts.1` -> `>=1.4.4-lts.1` widening moves to a
separate PR per @watson's review (would have added v2 support to a
"support ranges" refresh).

Refs: #8337 (comment)

* chore(deps): raise plugin-versions Dependabot PR cap to fit cohort design

The cohort grouping under `/packages/dd-trace/test/plugins/versions` only
helps when the matching PRs can open in parallel. With
`open-pull-requests-limit: 1` Dependabot still serializes the cohorts, so
a blocked group continues to stall every other group — the bottleneck the
groups were meant to remove. Bump to 10 (one slot per cohort plus
headroom).

Refs: #8337

* fix(test): scope same-name externals install by PACKAGE_VERSION_RANGE

Externals entries whose `name` matches the plugin key (e.g. the new
aerospike entry that mirrors the addHook versions for `withVersions`)
ignored `PACKAGE_VERSION_RANGE` and forced every major to install on
every CI job. Aerospike@4 has no Node-22 prebuilt binary, aerospike@6
has no Node-16 binary -- the per-major aerospike matrix can't boot
once the externals entry exists.

Also move aerospike's `hoistingLimits` install-config out of the
`!external` branch so the externals-loop write does not silently
overwrite the workspace setup the internal pass put down.

* fixup!
ci: avoid Yarn quarantine for Datadog packages
On Windows, the JS-based actions/cache action and Git Bash resolve /tmp
to different directories, causing the cached Node.js version file to
never be found. This means check-latest always fires on Windows, making
a manifest API call that can fail. Replace /tmp with ${{ runner.temp }}
/ $RUNNER_TEMP which resolves consistently across both contexts.

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
* chore(eslint): require messages on boolean test assertions

Add a custom ESLint rule that flags `assert(...)` / `assert.ok(...)`
calls whose first argument is a non-trivial expression and no second
message argument is provided. Without a message, failures only report
"Expected true, got false", hiding the actual value being asserted on —
debugging a flaky `assert.ok(duration >= 1000)` is painful when you
can't tell if `duration` was 500ms or 5ms.

Self-describing shapes are still allowed without a message: bare
references (`isReady`, `obj.prop`), structural unary ops (`!x`,
`typeof x`, `delete obj.k`), `in` / `instanceof` with trivial operands,
predicate-style calls (`arr.includes('foo')`, `Array.isArray(x)`), and
zero-arg method-chain calls used as getter-style navigation
(`span.context()._tags`).

Scoped to test files via the existing `TEST_FILES` glob.

* Add auto-fix

* Apply auto-fixes

* AI fix
* bump datadog/pprof

* add node-gyp-build resolutions

* update pprof nodejs version
…#8506)

The Express autocannon profile pins the HTTP server entry as the
dominant per-request hot path. Each request allocated three
short-lived `{ req, res, abortController }` / `{ req }` objects
through the instrumentation -> plugin -> AppSec chain, the plugin
re-ran `serviceName()`, `operationName()`, and a
`{ ...this.config, service }` spread on every call, and a couple of
secondary frames did per-call work that was easy to drop.

Three coordinated pieces tighten the path:

1. `wrapEmit` keeps one `{ req, res, abortController }` ctx alive and
   shares it with `exitServerCh` and the plugin's forward to
   `incomingHttpRequestStart`. This resolves the explicit
   `TODO: no need to make a new object here` on the AppSec publish;
   the start, exit, and AppSec subscribers all read from the same
   message without mutating it.
2. `HttpServerPlugin#configure` resolves `serviceName`, `operationName`,
   `serviceSource`, and the pre-merged `{ ...this.config, service }`
   once into the new `#startConfig`, `#operationName`, and
   `#serviceSource` private fields. The hot path reads cached fields;
   the next `configure` call refreshes them so remote-config flips
   still win.
3. `wrapResponseEmit` checks the event name with `||` instead of
   allocating a `['finish', 'close']` array on every response emit,
   and `wrapWriteHead` skips a no-op `Object.assign(this.getHeaders(),
   undefined)` when `writeHead` is called without an explicit headers
   object (the common Express case).

The per-request allocations the diff removes are deterministic from
reading the code; the targeted profile frames stop paying lookup
cost they did before. Span shape (resource, http.method, http.url,
http.status_code, http.route), CORS / correlation header handling,
and the `incomingHttpRequestStart` published message all match the
prior diagnostic-channel payload by deep-equal.
* ci(verify-tests): flag specs no CI invocation reaches

The existing "spec is matched by some script glob" check passes whenever
a `package.json` test script could in principle run a spec. It misses
the inverse failure: a glob exists but no workflow ever sets the env
(typically `PLUGINS=<name>`) that would expand the glob to reach the
spec. That is how PR #8516's
`packages/datadog-instrumentations/test/fastify.spec.js` slipped through
with no CI invocation running it, and why codecov reported 8 new lines
as patch misses despite the spec covering them locally.

Two prerequisites ride along so the joint check produces truthful
results:

1. `normalizeScriptGlob` collapsed every `@(${PLUGINS})` to `*` even in
   `preserveEnv` mode, so a single-plugin job (e.g. `PLUGINS=bluebird`)
   looked like it exercised every spec in the same directory. Unwrap
   the extglob to `${PLUGINS}` before the env-aware expansion runs.

2. `instrumentation-http` wraps `yarn test:instrumentations:ci` in
   `nick-fields/retry@*`'s `command:` input. Treat that input like an
   inline `run:` so the verifier sees the underlying invocation.

On `master` the new check surfaces 14 pre-existing orphans
(instrumentation specs with no matching `PLUGINS=` job, plus two plugin
integration-test specs and `datadog-plugin-jest/test/util.spec.js`);
closing each is out of scope and tracked in follow-up PRs.

* ci(instrumentation): run 11 orphan instrumentation specs

`packages/datadog-instrumentations/test/{ai,aws-sdk,couchbase,crypto,
express-multi-version,fetch,hono,http-client-options,otel-sdk-trace,
stripe,zlib}.spec.js` are matched by `test:instrumentations`' glob but
no workflow set `PLUGINS=<name>` for `test:instrumentations:ci`, so the
new joint-coverage check in `scripts/verify-exercised-tests.js` flagged
each as never reached by a CI invocation. Add the matching
`instrumentation-<name>` jobs alongside the existing siblings; nine of
the eleven are plain Node unit specs (proxyquire / agent harness) and
need no service containers, so the existing `instrumentations/test`
composite action runs them as-is.

Two specs need a custom job shape on top of that:

1. `couchbase` ships its own libcouchbase whose 3.x line only builds on
   Node 18 and whose 4.2+ line only builds on Node 20+; the composite
   action runs both oldest (18) and latest (24), so neither range
   survives the install on its own. Use a matrix that pins one Node
   version per range, mirroring the existing `couchbase` plugin job.

2. `http-client-options` listened on `127.0.0.1` only, but
   `http.request(undefined, callback)` resolves to `localhost`, which
   Node 18+ may resolve to `::1` first -- the request then fails with
   `ECONNREFUSED ::1:<port>` before the spec can assert. Bind the test
   server to all interfaces.

* ci(apm-integrations): run axios/body-parser integration-test specs

`packages/datadog-plugin-{axios,body-parser}/test/integration-test/client.spec.js`
are matched by `test:integration:plugins`' glob but no workflow set
`PLUGINS=<name>` for `test:integration:plugins:coverage`; the existing
`axios:` and `body-parser:` jobs only invoked `plugins/upstream`, which
runs the non-glob `test:plugins:upstream` suite-runner. The new joint
check flagged both specs as never reached.

Append `plugins/integration-test` to each job (which runs
`test:integration:plugins:coverage` with the same `PLUGINS=` env) rather
than spinning up sibling jobs; both specs are self-contained
(`FakeAgent` + `useSandbox`) and slot into the existing harness without
extra service setup.

The axios sandbox previously called `axios.get('/foo')`, which throws
synchronously without producing an http.request, so the spec timed out
waiting for a span. Switch to a full URL pointing at an unused port to
match the existing fetch sandbox; the request can fail and the
instrumentation still ships a span.

* ci(test-optimization): run datadog-plugin-jest unit spec

`packages/datadog-plugin-jest/test/util.spec.js` is matched by
`test:plugins`' glob but no workflow set `PLUGINS=jest` for
`test:plugins:ci`; the existing `integration-jest` matrix runs
`integration-tests/jest/*.spec.js` only, which does not cover the
plugin package's own unit tests. The new joint check flagged it as
never reached.

Add a single `jest:` job invoking the `plugins/test` composite action.
`util.spec.js` is a pure unit test on `getFormattedJestTestParameters`
and `getJestSuitesToRun`, so no service containers or matrix axes are
needed beyond what `plugins/test` already covers (oldest-maintenance
and latest Node).

Restore the three fixture files (`test-to-run.js`, `test-to-skip.js`,
`test-unskippable.js`) under `packages/datadog-plugin-jest/test/fixtures/`
that `getJestSuitesToRun` reads via `isMarkedAsUnskippable`. They were
deleted alongside the other jest plugin specs when those moved to
integration tests, but `util.spec.js` was kept and silently broke
because no CI invocation reached it.

* ci(instrumentation): run 11 orphan instrumentation specs

`packages/datadog-instrumentations/test/{ai,aws-sdk,couchbase,crypto,
express-multi-version,fetch,hono,http-client-options,otel-sdk-trace,
stripe,zlib}.spec.js` are matched by `test:instrumentations`' glob but
no workflow set `PLUGINS=<name>` for `test:instrumentations:ci`, so the
new joint-coverage check in `scripts/verify-exercised-tests.js` flagged
each as never reached by a CI invocation. Add the matching
`instrumentation-<name>` jobs alongside the existing siblings; nine of
the eleven are plain Node unit specs (proxyquire / agent harness) and
need no service containers, so the existing `instrumentations/test`
composite action runs them as-is.

Two specs need a custom job shape on top of that:

1. `couchbase` ships its own libcouchbase: the 3.x line has no prebuilt
   binary for Node 18+ and its bundled sources do not compile under
   modern gcc (missing <cstdint> for std::uint8_t). The composite
   action runs both oldest (18) and latest (24), so neither survives
   the install on its own. Use a matrix that pins one Node version
   per range, mirroring the existing `couchbase` plugin job's `eol`
   (16) for `^3.0.7` and Node 18 for `>=4.2.0`.

2. `http-client-options` listened on `127.0.0.1` only, but
   `http.request(undefined, callback)` resolves to `localhost`, which
   Node 18+ may resolve to `::1` first -- the request then fails with
   `ECONNREFUSED ::1:<port>` before the spec can assert. Bind the test
   server to all interfaces.
This widens the install retry envelope so CI yarn / bun installs
survive more shapes of transient registry failure:

1. `network-timeout 60000` in the repo-root `.yarnrc` doubles yarn's
   per-request timeout from the default 30s; yarn 1.x walks `.yarnrc`
   upward, so the single root entry covers every yarn install in the
   repo tree.

2. Composite install actions use `nick-fields/retry` (pinned in
   `instrumentation.yml`) instead of `|| (sleep N && cmd)`: three
   attempts with a 30s wait between, plus a per-attempt
   `timeout_minutes` cap that bounds a hung install.
…8485)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…#8597)

IPC tests that trigger loadWindow() need more than the default 1000ms
for a Chromium BrowserWindow to load and deliver its span in CI.

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Open upstream bug actions/cache#1754: @actions/cache silently exits
non-zero on Windows during cache restore with no error output, failing
the calling step. Symptoms: ~0.6s silent death in setup-bun, setup-node,
or any direct actions/cache use. Affects every job that hits a cold
Windows cache; retrying the job manually almost always succeeds.

- node action: split implementation into node/setup and have node/action
  call it twice (continue-on-error + if failure), so the whole
  composite (setup-node, our version cache, setup-bun) retries once on
  Windows failure. All existing callers and version aliases are
  unchanged.
- datadog-ci action: drop the actions/cache step. @datadog/datadog-ci is
  a bundled package with no transitive deps; the install is fast enough
  that the cache wasn't pulling its weight, and it directly exposed us
  to the same bug.

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…tes (#8601)

* chore(deps): bump the ai-and-llm group across 1 directory with 8 updates

Bumps the ai-and-llm group with 8 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [@langchain/anthropic](https://github.com/langchain-ai/langchainjs) | `1.3.29` | `1.4.0` |
| [@langchain/classic](https://github.com/langchain-ai/langchainjs) | `1.0.32` | `1.0.33` |
| [@langchain/core](https://github.com/langchain-ai/langchainjs) | `1.1.46` | `1.1.47` |
| [@langchain/google-genai](https://github.com/langchain-ai/langchainjs) | `2.1.30` | `2.1.31` |
| [@langchain/langgraph](https://github.com/langchain-ai/langgraphjs/tree/HEAD/libs/langgraph-core) | `1.3.0` | `1.3.1` |
| [@langchain/openai](https://github.com/langchain-ai/langchainjs) | `1.4.5` | `1.4.6` |
| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `6.0.184` | `6.0.185` |
| [langchain](https://github.com/langchain-ai/langchainjs) | `1.4.0` | `1.4.1` |



Updates `@langchain/anthropic` from 1.3.29 to 1.4.0
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/commits/@langchain/anthropic@1.4.0)

Updates `@langchain/classic` from 1.0.32 to 1.0.33
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/commits/@langchain/classic@1.0.33)

Updates `@langchain/core` from 1.1.46 to 1.1.47
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/@langchain/core@1.1.46...@langchain/core@1.1.47)

Updates `@langchain/google-genai` from 2.1.30 to 2.1.31
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/commits/@langchain/google-genai@2.1.31)

Updates `@langchain/langgraph` from 1.3.0 to 1.3.1
- [Release notes](https://github.com/langchain-ai/langgraphjs/releases)
- [Changelog](https://github.com/langchain-ai/langgraphjs/blob/main/libs/langgraph-core/CHANGELOG.md)
- [Commits](https://github.com/langchain-ai/langgraphjs/commits/@langchain/langgraph@1.3.1/libs/langgraph-core)

Updates `@langchain/openai` from 1.4.5 to 1.4.6
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/commits/@langchain/openai@1.4.6)

Updates `ai` from 6.0.184 to 6.0.185
- [Release notes](https://github.com/vercel/ai/releases)
- [Changelog](https://github.com/vercel/ai/blob/ai@6.0.185/packages/ai/CHANGELOG.md)
- [Commits](https://github.com/vercel/ai/commits/ai@6.0.185/packages/ai)

Updates `langchain` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/langchain-ai/langchainjs/releases)
- [Commits](https://github.com/langchain-ai/langchainjs/compare/@langchain/openai@1.4.0...langchain@1.4.1)

---
updated-dependencies:
- dependency-name: "@langchain/anthropic"
  dependency-version: 1.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ai-and-llm
- dependency-name: "@langchain/classic"
  dependency-version: 1.0.33
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@langchain/core"
  dependency-version: 1.1.47
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@langchain/google-genai"
  dependency-version: 2.1.31
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@langchain/langgraph"
  dependency-version: 1.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@langchain/openai"
  dependency-version: 1.4.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: ai
  dependency-version: 6.0.185
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: langchain
  dependency-version: 1.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: update supported-integrations

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dd-octo-sts[bot] <200755185+dd-octo-sts[bot]@users.noreply.github.com>
…up/everything-fixture in the npm_and_yarn group across 1 directory (#8596)

Bumps the npm_and_yarn group with 1 update in the /benchmark/sirun/startup/everything-fixture directory: [uuid](https://github.com/uuidjs/uuid).


Updates `uuid` from 9.0.1 to 14.0.0
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md)
- [Commits](uuidjs/uuid@v9.0.1...v14.0.0)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version: 14.0.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ss 1 directory with 4 updates (#8561)

Bumps the dev-minor-and-patch-dependencies group with 4 updates in the / directory: [axios](https://github.com/axios/axios), [bun](https://github.com/oven-sh/bun), [semver](https://github.com/npm/node-semver) and [yaml](https://github.com/eemeli/yaml).


Updates `axios` from 1.16.0 to 1.16.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.16.0...v1.16.1)

Updates `bun` from 1.3.13 to 1.3.14
- [Release notes](https://github.com/oven-sh/bun/releases)
- [Commits](oven-sh/bun@bun-v1.3.13...bun-v1.3.14)

Updates `semver` from 7.7.4 to 7.8.0
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](npm/node-semver@v7.7.4...v7.8.0)

Updates `yaml` from 2.8.4 to 2.9.0
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](eemeli/yaml@v2.8.4...v2.9.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.16.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-minor-and-patch-dependencies
- dependency-name: bun
  dependency-version: 1.3.14
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: dev-minor-and-patch-dependencies
- dependency-name: semver
  dependency-version: 7.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-and-patch-dependencies
- dependency-name: yaml
  dependency-version: 2.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: dev-minor-and-patch-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#8594)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
#8564)

The "sends a heap profile on OOM with external process and exits
successfully" test consistently fails on Node 22.22.3 on Linux. With
3 extensions of 15MB each (50MB initial + 45MB), V8 finishes the test
program's 12 x 5MB allocations only by a narrow margin. On Node 22's
V8, the GCs running under tight-heap pressure trigger V8's separate
"Ineffective mark-compacts near heap limit" abort path (independent
of the near-heap-limit callback) before the program completes.

Raising each extension to 20MB gives V8 more breathing room between
OOM events, making individual GCs more likely to be "effective" and
keeping V8's consecutive-ineffective-GC counter from reaching its
threshold. The test still exercises 3 OOM events; only the per-step
size changes.
* Implementation of azure/cosmos integration

* diff reduction

* more diff reduction

* first draft of unit and integration tests

* unit tests working

* testing

* Working integration tests

* linting

* linting

* Some linting, draft of function trigger implementation

* added function trigger instrumentation and tests

* cleanup

* Skip tracing extraneous reads

* Using operation type instead of resource

* move adding error tag to within null check

* temp

* no changes to yarn.lock

* linting and config

* simplify integration test checks

* lint

* add id token perms

* node options on integration test

* node options for non-esm tests

* add timeout waiting for cosmos emulator

* try logging

* try env var to allow emulator connection

* trying http again for non-esm tests

* add cosmosdb to azure-functions test spec

* skip node 18 for testing

* more node skips

* try to refactor azure cosmos import in azure functions integration tests

* use 127.0.0.1 instead of localhost

* remove skipping node 18

* re-lower the minimum supported sdk version

* load azure/cosmos differently

* increase timeout

* restructure checking trace payload

* more debug

* logging

* more debugging

* stronger assertions

* check resources

* fix up trigger tests

* Linting

* trying to fix skip span behavior

* more skip span work

* fixing span skipping

* fix resource in azure functions test

* Responding to reviews, fixing error test

* remove specific version for cosmos package

* linting

* fix use of spread operator

* revert spread operator

* try changing the node options for azure functions cosmos

* normalize resource

* reformatting

* undoing formatting

* Fixing error method in instrumentation

* simplify getting tags

* supported integrations

* Small fixes in index.js

* Unit tests for getResource

* fixing azure functions, use of emulator, and status code tags

* lint

* try disabling cookie

* image digests

* lint

* changing status code to string

* cookie

* proxy agent module

* more packages

* dotnet 8 for azure functions

* crypto

* timeout

* fixing azure functions cosmos test

* teardown of azure cosmos client

* Cleanup

* linting

* Fixing span skip

* use noop to skip account based operations

* Add test for noop

* remove additional file

* modifying getConnectionMode
… 24.16+ (#8604)

Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ts (#8616)

* fix(ci): replace setup-bun with npm install to avoid GitHub rate limits

setup-bun hits GitHub Cache API and Releases API rate limits when many
jobs run in parallel. Installing via npm pulls the binary from npm's CDN
instead, avoiding GitHub entirely.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>

* fix(ci): skip Bun install on unsupported Node.js versions

npm install for bun@1.3.1 runs a postinstall script that fails on
Node.js < 12. Skip the install step on those versions since they
don't use Bun anyway (e.g. integration-guardrails-unsupported).

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…p/everything-fixture in the npm_and_yarn group across 1 directory (#8611)

Bumps the npm_and_yarn group with 1 update in the /benchmark/sirun/startup/everything-fixture directory: [qs](https://github.com/ljharb/qs).


Updates `qs` from 6.15.1 to 6.15.2
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.15.1...v6.15.2)

---
updated-dependencies:
- dependency-name: qs
  dependency-version: 6.15.2
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
v1.0.3 fixes a race condition that can cause the API key to never
be outputted.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…stall (#8576)

`FileCoverage.getLineCoverage()` walks `statementMap` only, so
function-declaration lines, `} else {` continuations, and inline
ternary arms never appear in the returned hit map. The `lcovonly`
reporter emits `DA:` records straight from that map, so Codecov's
patch view marks those lines as missing on every PR that touches
them — even when the test run exercised the function or branch
arm — until upstream lands the fix.

Untaken branch arms record as `0` so `LF` totals stay honest. The
patch is idempotent via an inline sentinel and refuses to apply
if the locked upstream code shape changes, so a future
`istanbul-lib-coverage` bump fails the install loudly instead of
silently no-op'ing.

The patch runs in `prepare`, not `postinstall`, and the script
logs to stderr only. Two distinct failure modes drive both
choices:

1. `postinstall` runs on consumer installs and crashes with
   `MODULE_NOT_FOUND` before any in-script guard can fire,
   because the script is not in the `files` allowlist; `prepare`
   is skipped on consumer installs entirely.
2. `prepare` also runs under `npm pack`, where CI captures the
   tarball name via `FILENAME=$(npm pack --silent …)`; output on
   stdout lands inside `$FILENAME` and breaks the downstream
   `mv` / `tar`, so diagnostic output goes to stderr (matching
   `scripts/release/swap-v5-types.js`).

Refs: istanbuljs/istanbuljs#809
@BridgeAR BridgeAR requested review from a team as code owners May 29, 2026 16:34
@BridgeAR BridgeAR requested review from khanayan123 and removed request for a team May 29, 2026 16:35
@BridgeAR BridgeAR enabled auto-merge (rebase) May 29, 2026 16:35
@BridgeAR BridgeAR requested review from litianningdatadog, sameerank, typotter and wconti27 and removed request for a team May 29, 2026 16:35
@dd-octo-sts
Copy link
Copy Markdown
Contributor Author

dd-octo-sts Bot commented May 29, 2026

Overall package size

Self size: 6.07 MB
Deduped: 7.1 MB
No deduping: 7.1 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.0.1 | 82.56 kB | 817.39 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

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

datadog-prod-us1-4 Bot commented May 29, 2026

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 88.84%
Overall Coverage: 86.76%

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

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 29, 2026

Benchmarks

Benchmark execution time: 2026-05-29 16:50:03

Comparing candidate commit 19c06ca in PR branch v5.105.0-proposal with baseline commit 21526bc in branch v5.x.

Found 52 performance improvements and 43 performance regressions! Performance is the same for 1400 metrics, 98 unstable metrics.

scenario:encoders-0.4-20

  • 🟥 cpu_user_time [+94.051ms; +118.611ms] or [+21.420%; +27.014%]
  • 🟥 instructions [+1.4G instructions; +1.5G instructions] or [+50.079%; +51.121%]
  • 🟩 execution_time [-87.931ms; -71.052ms] or [-11.729%; -9.478%]

scenario:encoders-0.4-22

  • 🟥 cpu_user_time [+38.660ms; +61.229ms] or [+9.487%; +15.026%]
  • 🟥 instructions [+1.1G instructions; +1.1G instructions] or [+40.887%; +42.191%]
  • 🟩 execution_time [-147.686ms; -135.347ms] or [-20.261%; -18.569%]

scenario:encoders-0.4-24

  • 🟥 cpu_user_time [+48.309ms; +62.445ms] or [+12.184%; +15.749%]
  • 🟥 instructions [+1.1G instructions; +1.2G instructions] or [+45.828%; +46.961%]
  • 🟩 execution_time [-147.685ms; -141.021ms] or [-20.329%; -19.411%]

scenario:encoders-0.4-events-legacy-20

  • 🟥 max_rss_usage [+51.538MB; +53.453MB] or [+18.116%; +18.789%]
  • 🟩 cpu_user_time [-367.578ms; -321.670ms] or [-21.157%; -18.514%]
  • 🟩 execution_time [-1.684s; -1.658s] or [-50.881%; -50.068%]
  • 🟩 instructions [-984.8M instructions; -950.1M instructions] or [-8.971%; -8.655%]

scenario:encoders-0.4-events-legacy-22

  • 🟥 max_rss_usage [+51.185MB; +53.085MB] or [+17.375%; +18.019%]
  • 🟩 cpu_user_time [-397.118ms; -366.805ms] or [-23.618%; -21.815%]
  • 🟩 execution_time [-1.716s; -1.691s] or [-52.869%; -52.093%]
  • 🟩 instructions [-1.4G instructions; -1.4G instructions] or [-12.997%; -12.653%]

scenario:encoders-0.4-events-legacy-24

  • 🟥 max_rss_usage [+51.600MB; +53.415MB] or [+17.367%; +17.978%]
  • 🟩 cpu_user_time [-411.505ms; -360.351ms] or [-24.411%; -21.376%]
  • 🟩 execution_time [-1.733s; -1.698s] or [-53.000%; -51.937%]
  • 🟩 instructions [-1.2G instructions; -1.2G instructions] or [-11.639%; -11.341%]

scenario:encoders-0.4-events-native-20

  • 🟩 cpu_user_time [-1.102s; -1.042s] or [-51.917%; -49.115%]
  • 🟩 execution_time [-3.884s; -3.820s] or [-75.360%; -74.131%]
  • 🟩 instructions [-4.7G instructions; -4.6G instructions] or [-35.066%; -33.937%]
  • 🟩 max_rss_usage [-51.470MB; -49.698MB] or [-13.592%; -13.124%]

scenario:encoders-0.4-events-native-22

  • 🟩 cpu_user_time [-1.131s; -1.077s] or [-56.852%; -54.149%]
  • 🟩 execution_time [-3.932s; -3.862s] or [-78.239%; -76.844%]
  • 🟩 instructions [-5.1G instructions; -5.1G instructions] or [-41.047%; -40.669%]
  • 🟩 max_rss_usage [-56.185MB; -55.068MB] or [-14.366%; -14.081%]

scenario:encoders-0.4-events-native-24

  • 🟩 cpu_user_time [-1.131s; -1.086s] or [-56.660%; -54.401%]
  • 🟩 execution_time [-3.932s; -3.871s] or [-78.029%; -76.822%]
  • 🟩 instructions [-5.1G instructions; -5.0G instructions] or [-41.277%; -40.674%]
  • 🟩 max_rss_usage [-55.015MB; -52.833MB] or [-13.971%; -13.416%]

scenario:encoders-0.5-20

  • 🟥 cpu_user_time [+65.624ms; +76.331ms] or [+26.122%; +30.385%]
  • 🟥 execution_time [+58.732ms; +67.188ms] or [+17.852%; +20.422%]
  • 🟥 instructions [+840.2M instructions; +871.4M instructions] or [+54.302%; +56.315%]
  • 🟥 max_rss_usage [+21.696MB; +30.515MB] or [+17.741%; +24.952%]

scenario:encoders-0.5-22

  • 🟥 cpu_user_time [+69.635ms; +85.045ms] or [+29.228%; +35.696%]
  • 🟥 execution_time [+57.961ms; +74.594ms] or [+18.129%; +23.331%]
  • 🟥 instructions [+834.3M instructions; +878.5M instructions] or [+55.391%; +58.323%]
  • 🟥 max_rss_usage [+17.357MB; +26.256MB] or [+12.890%; +19.498%]

scenario:encoders-0.5-24

  • 🟥 cpu_user_time [+62.035ms; +75.583ms] or [+27.468%; +33.467%]
  • 🟥 execution_time [+58.024ms; +65.165ms] or [+18.965%; +21.299%]
  • 🟥 instructions [+869.9M instructions; +904.1M instructions] or [+62.330%; +64.788%]

scenario:encoders-0.5-events-legacy-20

  • 🟥 cpu_user_time [+109.496ms; +132.409ms] or [+11.439%; +13.833%]
  • 🟥 execution_time [+112.693ms; +133.729ms] or [+10.775%; +12.787%]
  • 🟥 instructions [+1.0G instructions; +1.1G instructions] or [+15.317%; +15.876%]
  • 🟥 max_rss_usage [+9.299MB; +17.019MB] or [+7.600%; +13.909%]

scenario:encoders-0.5-events-legacy-22

  • 🟥 cpu_user_time [+114.564ms; +128.599ms] or [+12.068%; +13.546%]
  • 🟥 execution_time [+115.362ms; +122.923ms] or [+11.065%; +11.790%]
  • 🟥 instructions [+1.0G instructions; +1.0G instructions] or [+15.087%; +15.418%]
  • 🟥 max_rss_usage [+17.430MB; +18.345MB] or [+13.645%; +14.361%]

scenario:encoders-0.5-events-legacy-24

  • 🟥 cpu_user_time [+96.123ms; +108.946ms] or [+10.335%; +11.714%]
  • 🟥 execution_time [+101.838ms; +109.471ms] or [+9.939%; +10.684%]
  • 🟥 instructions [+1.0G instructions; +1.0G instructions] or [+15.501%; +15.806%]
  • 🟥 max_rss_usage [+21.713MB; +25.594MB] or [+17.190%; +20.263%]

scenario:exporting-pipeline-0.4-22

  • 🟩 instructions [-41.1M instructions; -35.8M instructions] or [-6.486%; -5.651%]

scenario:exporting-pipeline-0.4-24

  • 🟩 instructions [-47.3M instructions; -41.3M instructions] or [-8.879%; -7.741%]

scenario:exporting-pipeline-0.4_with_stats-22

  • 🟩 instructions [-38.3M instructions; -33.5M instructions] or [-5.832%; -5.096%]

scenario:exporting-pipeline-0.4_with_stats-24

  • 🟥 max_rss_usage [+3.908MB; +4.392MB] or [+5.242%; +5.891%]
  • 🟩 instructions [-40.1M instructions; -34.1M instructions] or [-7.168%; -6.096%]

scenario:exporting-pipeline-0.5-20

  • 🟩 instructions [-33.8M instructions; -29.4M instructions] or [-6.086%; -5.296%]

scenario:exporting-pipeline-0.5-22

  • 🟩 instructions [-39.0M instructions; -35.0M instructions] or [-6.940%; -6.237%]

scenario:exporting-pipeline-0.5-24

  • 🟩 instructions [-35.0M instructions; -31.5M instructions] or [-7.352%; -6.619%]

scenario:exporting-pipeline-0.5_with_stats-24

  • 🟥 max_rss_usage [+3.953MB; +4.305MB] or [+5.623%; +6.124%]
  • 🟩 instructions [-45.4M instructions; -40.9M instructions] or [-8.866%; -7.981%]

scenario:plugin-bluebird-with-tracer-24

  • 🟥 instructions [+48.8M instructions; +55.5M instructions] or [+5.058%; +5.760%]

scenario:plugin-graphql-long-with-depth-and-collapse-off-20

  • 🟥 max_rss_usage [+60.132MB; +81.616MB] or [+6.591%; +8.946%]

scenario:plugin-graphql-long-with-depth-and-collapse-off-22

  • 🟩 instructions [-1.8G instructions; -1.0G instructions] or [-9.079%; -5.295%]

scenario:plugin-graphql-long-with-depth-and-collapse-on-20

  • 🟩 cpu_user_time [-404.620ms; -221.636ms] or [-10.339%; -5.663%]
  • 🟩 execution_time [-397.008ms; -244.952ms] or [-9.158%; -5.650%]
  • 🟩 instructions [-1210.6M instructions; -764.7M instructions] or [-11.057%; -6.984%]

scenario:plugin-graphql-long-with-depth-and-collapse-on-24

  • 🟩 execution_time [-787.731ms; -520.152ms] or [-24.617%; -16.255%]
  • 🟩 instructions [-1.3G instructions; -0.9G instructions] or [-17.382%; -12.521%]
  • 🟩 max_rss_usage [-65.851MB; -51.769MB] or [-9.863%; -7.754%]

scenario:plugin-graphql-long-with-depth-off-20

  • 🟥 instructions [+394.8M instructions; +867.3M instructions] or [+5.335%; +11.721%]
  • 🟥 max_rss_usage [+32.466MB; +37.078MB] or [+5.692%; +6.501%]

scenario:plugin-graphql-long-with-depth-off-22

  • 🟥 instructions [+498.4M instructions; +762.8M instructions] or [+7.054%; +10.797%]
  • 🟥 max_rss_usage [+31.269MB; +37.623MB] or [+5.379%; +6.472%]

scenario:plugin-graphql-long-with-depth-on-max-20

  • 🟩 cpu_user_time [-416.883ms; -250.090ms] or [-10.613%; -6.366%]
  • 🟩 execution_time [-421.161ms; -276.459ms] or [-9.708%; -6.372%]

scenario:plugin-graphql-long-with-depth-on-max-24

  • 🟩 cpu_user_time [-726.886ms; -514.196ms] or [-26.033%; -18.415%]
  • 🟩 execution_time [-736.517ms; -549.632ms] or [-23.339%; -17.417%]
  • 🟩 instructions [-1.4G instructions; -0.8G instructions] or [-19.214%; -10.876%]
  • 🟩 max_rss_usage [-73.481MB; -40.740MB] or [-11.093%; -6.150%]

scenario:plugin-q-with-tracer-24

  • 🟥 instructions [+259.5M instructions; +281.0M instructions] or [+12.373%; +13.396%]
  • 🟥 max_rss_usage [+14.764MB; +15.997MB] or [+7.147%; +7.744%]

scenario:shimmer-startup-arrow-wrap-22

  • 🟩 instructions [-131.6M instructions; -100.2M instructions] or [-7.093%; -5.402%]

scenario:shimmer-startup-arrow-wrap-24

  • 🟩 max_rss_usage [-10.745MB; -7.443MB] or [-7.259%; -5.028%]

scenario:shimmer-startup-asyncarrow-wrap-24

  • 🟩 max_rss_usage [-10.937MB; -10.285MB] or [-7.361%; -6.922%]

scenario:shimmer-startup-asyncdeclared-wrap-24

  • 🟩 max_rss_usage [-11.230MB; -9.159MB] or [-7.560%; -6.166%]

scenario:shimmer-startup-declared-wrap-22

  • 🟩 instructions [-132.0M instructions; -102.8M instructions] or [-7.129%; -5.549%]

scenario:shimmer-startup-declared-wrap-24

  • 🟩 max_rss_usage [-10.739MB; -10.093MB] or [-7.234%; -6.800%]

scenario:spans-finish-later-24

  • 🟥 cpu_user_time [+39.236ms; +49.912ms] or [+6.338%; +8.063%]
  • 🟩 max_rss_usage [-53.399MB; -43.700MB] or [-16.083%; -13.162%]

auto-merge was automatically disabled May 29, 2026 16:50

Rebase failed

@rochdev rochdev merged commit 19c06ca into v5.x May 29, 2026
797 checks passed
@rochdev rochdev deleted the v5.105.0-proposal branch May 29, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.