Skip to content

v6.5.0 proposal#9491

Open
dd-octo-sts[bot] wants to merge 65 commits into
v6.xfrom
v6.5.0-proposal
Open

v6.5.0 proposal#9491
dd-octo-sts[bot] wants to merge 65 commits into
v6.xfrom
v6.5.0-proposal

Conversation

@dd-octo-sts

@dd-octo-sts dd-octo-sts Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Features

  • AI Guard: Evaluating anthropic calls with AI guard automatically #9219
  • AppSec: Report DD_APPSEC_AGENTIC_ONBOARDING in config telemetry #9486
  • ci: Add code coverage report flags #9418
  • ci: Add Test Optimization validation runbook #9323
  • express: Surface repeated middleware next() as a span event #9243
  • Feature Flags: Support agentless feature flag configuration #9397
  • frontdoor-agw: Add implementation for Azure Frontdoor and App Gateway inferred spans #9089
  • graphql: Add field schema coordinates #9346
  • LLM Observability: Capture audio in messages and OpenAI chat completions #9083
  • LLM Observability: Control-plane HTTP client for experiments #9158
  • LLM Observability: Support ai sdk v7 embedMany operations #9466
  • OpenTelemetry: Correct Next.js root request span naming #9119
  • Test Optimization: Upload failure screenshots #9433

Fixes

  • Feature Flags: Support file-traced optional provider loading #9324
  • General: Apply pm2_env env vars before tracer init #8863
  • General: Preserve ESM export aliases #9436
  • graphql: Preserve hook error overrides #9435
  • LLM Observability: Fix infinite recursion when using BedrockChatLanguageModel #9487
  • loader: Defer instrumentation graph during preload #9485
  • nyc: Preserve report generation failures #9337
  • standalone: Stamp _dd.apm.enabled on every exported chunk #9483
  • Test Optimization: Clear policies after settings failure #9347
  • Test Optimization: Harden RUM correlation failures #9408
  • Test Optimization: Release removed replay probes #9336
  • Test Optimization: Restore manual test context #9356
  • Test Optimization: Support NODE_OPTIONS auto-instrumentation #9371
  • Test Optimization: Support numeric retries with ATR #9484
  • Test Optimization: Support version 13.2 #9456

Performance

  • graphql: Reuse path-string cache for collapsed fields #9401

Documentation

  • electron: Replace README with internal-use-only notice on publish #9407
  • orchestrion: Refresh AST-rewriter reference for current engine #9133

Internal (CI, Testing, Benchmarking)

  • AppSec: Deflake RASP SSRF "should not detect threat" express tests #9417
  • AppSec: Drop redundant yarn install from sourcemap test #9448
  • ci: Tolerate coverage preload in clean env tests #9429
  • coverage: Warm source maps before process exit #9330
  • Dependencies: Bump @anthropic-ai/claude-agent-sdk #9474
  • Dependencies: Bump brace-expansion #9452
  • Dependencies: Bump bullmq #9471
  • Dependencies: Bump import-in-the-middle to 3.3.2 #9447
  • Dependencies: Bump the vendor-minor-and-patch-dependencies group across 1 directory with 3 updates #9470
  • electron: Give HTTP trace assertions the same timeout as IPC tests #9409
  • electron: Stabilize flaky CI (install/apt retries, IPC teardown) #9316
  • General: Assert DD_APPSEC_AGENTIC_ONBOARDING in v5 appsec config #9489
  • General: Bind mock server to tracer address #9400
  • General: Isolate span sampling rules fixture #9430
  • General: Run package scripts with npm #9405
  • General: Update one-pipeline to 1.1.0 #9438
  • General: Validate CPU percentage against process usage #9289
  • init: Guard fixture source logging #9269
  • LLM Observability: Bump tested openai version with new cassettes #9439
  • workflows: Add dd-octo-sts chainguard policy files #8438
  • workflows: Replace GITHUB_TOKEN with dd-octo-sts #8432

BridgeAR and others added 30 commits July 22, 2026 16:58
A failed settings response must leave test management, EFD, and ITR disabled.
…9133)

The reference tracked an older code-transformer surface and read as a tour
of every field. Two capabilities the prior version did not cover are the
ones that decide instrumentation strategy:

1. A library that exposes work through a runtime-decorated handle
   (`app.decorate('x', fn)`) is still orchestrion-matchable when the function
   behind it is a named source declaration — match `functionName`, not the
   handle, and skip shimmer entirely.
2. `objectName` + `propertyName` pin a function assigned to a property on a
   named receiver (or `this`), where `expressionName` alone matches the wrong
   object when the property name repeats.

Trims the per-field walkthrough to the parts that change a decision and keeps
the verify-against-installed-source caveat.

* docs(orchestrion): correct skill guidance for current wrappers

The vendored Orchestrion templates still allocate wrapper state before the subscriber check, so the reference should not describe the inactive path as zero-cost. Extra module prefixes also require an explicit subscription loop today; documenting that prevents forked package integrations from silently missing events.

* docs(orchestrion): correct wrapper lifecycle guidance

An astQuery-only async hook silently selects the synchronous wrapper unless functionQuery keeps the operator metadata. Generated channels also never emit finish, and the duplicate iterator guide used the obsolete config field and channel suffix.
The server used an IPv6 wildcard while the tracer exported to 127.0.0.1.
macOS can assign that wildcard a numeric port already held by an IPv4
listener, so trace payloads reached that process instead of the mock agent.
Finished manual test spans remained active in async-local storage, so nested tests and later work inherited a completed parent.
Collapsed list resolvers built both a dotted string and a parallel object path for the same key, repeating map lookups and allocations for every resolver. A five-item list with four fields per item dropped from 4.10-4.16 us to 3.68-3.69 us per bookkeeping pass (10.1-11.2%) on Node v24.18.0 / V8 13.6.233.17-node.50.
In OTel bridge mode, Next.js renames its root request span to `${method} ${route}` before ending it. The bridge mapped that value to the Datadog operation name, producing route-bearing operation names and leaving the resource as the bare method.

Apply the correction before the DD span is finished and serialized, preserving Next's route/RSC resource name while selecting the operation name from the active service-naming schema.

Fixes: #4003
Node can hang when native coverage resolves a large ESM source-map cache during isolate teardown. Resolve maps as scripts load so the final V8 snapshot retains all execution counters and foreign coverage directories remain untouched.

Refs: nodejs/node#49344

* test(coverage): disconnect source-map observer before teardown

Drain the last queued URLs and disconnect the Debugger session from the JavaScript exit event before Node runs native coverage serialization. This keeps late exit-time maps while avoiding a live observer during isolate teardown.

* test(coverage): avoid renderer and exit-time source-map lookups

Electron renderers lack a usable Node inspector, so connecting a Session prevents renderer preload and IPC instrumentation from starting. Explicit process.exit skips the scheduled warm-up, moving the full source-map backlog into the exit event where Node's teardown can hang.

Skip only renderer observers and drain pending maps before explicit exit; the exit hook now only disconnects.
Next.js standalone builds using pnpm omitted the OpenFeature provider because the shared optional-peer wrapper was invisible to nft, leaving tracer.openfeature as the no-op provider at runtime. Keep the bundler escape hatch while exposing a file-traceable fallback entrypoint for tools that cannot recognize the wrapper.
Also document CommonJS and ESM entrypoints.

Fixes: #8635
…9289)

Hardcoded CPU bounds fail when scheduler contention shifts system time, while
wide static tolerances can hide conversion errors. Bracket the collector's
reads with independent process CPU and monotonic-clock samples to keep the
real native and fallback paths while deriving the accepted range from the
observed interval.
* Add dd-octo-sts chainguard policy files

Add 5 policy files under .github/chainguard/ declaring the
issuer, subject, event, and permission constraints for every
workflow that will be migrated from secrets.GITHUB_TOKEN to
DataDog/dd-octo-sts-action.

These policies must be on the default branch before the
corresponding workflow changes can use them.

* ci(chainguard): rescope self.* octo-sts policies to current master

master already migrated project.yml (package-size-report) and part of
update-3rdparty-licenses.yml (auto-commit-licenses job) to octo-sts,
under a bare policy naming convention, since this PR was opened. Drop
the duplicate self.package-size-report and self.check-licenses
policies added here for those now-covered workflows.

Also fix self.release-validate: its claim_pattern matched a
pull_request/refs/pull/.../merge trigger, but release-validate.yml
triggers on push to v*.*.*-proposal branches. The policy would never
have matched a real token request.

* ci(chainguard): add self.check-licenses policy for license regen step

The check-licenses job's 'Regenerate LICENSE-3rdparty.csv' step still
uses secrets.GITHUB_TOKEN on master; only the separate
auto-commit-licenses job was migrated to octo-sts (policy:
update-3rdparty-licenses), which is actor-restricted to
dependabot/dd-octo-sts and grants contents:write for the commit-back.

check-licenses runs for any PR touching the license-relevant paths,
not just bot PRs, and only needs read access to generate the SBOM
CSV, so it needs its own unrestricted, read-only policy rather than
reusing update-3rdparty-licenses.

Isolated in its own commit: revert this alone if it turns out
redundant or conflicts with follow-up work on that workflow.

---------

Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
#9316)

* test(plugins): retry versions install to survive transient CDN 5xx

The generated versions/ workspaces download large prebuilt binaries at postinstall time (e.g. Electron pulls one archive per major from GitHub's release CDN), which intermittently fail with 502/504 gateway errors. The previous single, immediate retry fired back-to-back, so both attempts landed in the same brief outage window and the job failed anyway.

Wrap the install in a small backoff-retry helper (4 attempts, 5s/10s/20s) so a transient outage no longer fails the job. This benefits every plugin's version install, not just Electron.

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

* ci(electron): retry apt-get in the electron job

The electron job installs xvfb via apt, whose package mirrors occasionally return transient 5xx/invalid-data errors and fail the job. Retry the update+install with backoff before giving up.

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

* test(electron): guard IPC teardown against a closed channel

The afterEach teardown sent {name:'quit'} unconditionally. If the Electron child had already exited (e.g. an app crash mid-test), sending on the closed IPC channel emits an unhandled ERR_IPC_CHANNEL_CLOSED 'error' that masks the real failure and, because it throws inside the hook, aborts the rest of the suite.

Only quit a still-connected child and pass a send callback so a channel that races closed is absorbed instead of emitting 'error'. A genuine crash still fails its own test via the trace-assertion timeout.

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

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Add dd-octo-sts chainguard policy files

Add 5 policy files under .github/chainguard/ declaring the
issuer, subject, event, and permission constraints for every
workflow that will be migrated from secrets.GITHUB_TOKEN to
DataDog/dd-octo-sts-action.

These policies must be on the default branch before the
corresponding workflow changes can use them.

* Replace secrets.GITHUB_TOKEN with dd-octo-sts

Migrate the remaining secrets.GITHUB_TOKEN references in 6
GitHub Actions workflows to OIDC tokens minted by
DataDog/dd-octo-sts-action. The token exchange is auditable
and governed by chainguard policy files that explicitly
declare which workflow, event, and ref pattern may request
which permissions.

For release.yml the three publish jobs already had an
octo-sts step; move the GITHUB_TOKEN env from job level
(where step outputs are not yet available) to step level on
the release-notes script, using GH_TOKEN which the gh CLI
and the notes script both recognise.

For the other 5 workflows add a new dd-octo-sts step and a
matching chainguard policy file.

* ci(chainguard): rescope self.* octo-sts policies to current master

master already migrated project.yml (package-size-report) and part of
update-3rdparty-licenses.yml (auto-commit-licenses job) to octo-sts,
under a bare policy naming convention, since this PR was opened. Drop
the duplicate self.package-size-report and self.check-licenses
policies added here for those now-covered workflows.

Also fix self.release-validate: its claim_pattern matched a
pull_request/refs/pull/.../merge trigger, but release-validate.yml
triggers on push to v*.*.*-proposal branches. The policy would never
have matched a real token request.

* ci(chainguard): add self.check-licenses policy for license regen step

The check-licenses job's 'Regenerate LICENSE-3rdparty.csv' step still
uses secrets.GITHUB_TOKEN on master; only the separate
auto-commit-licenses job was migrated to octo-sts (policy:
update-3rdparty-licenses), which is actor-restricted to
dependabot/dd-octo-sts and grants contents:write for the commit-back.

check-licenses runs for any PR touching the license-relevant paths,
not just bot PRs, and only needs read access to generate the SBOM
CSV, so it needs its own unrestricted, read-only policy rather than
reusing update-3rdparty-licenses.

Isolated in its own commit: revert this alone if it turns out
redundant or conflicts with follow-up work on that workflow.

* ci(workflows): migrate check-licenses regen step to dd-octo-sts

The 'Regenerate LICENSE-3rdparty.csv' step in check-licenses still
used secrets.GITHUB_TOKEN; only the separate auto-commit-licenses job
was migrated to octo-sts on master. Wire it to the self.check-licenses
policy added alongside this (read-only, unrestricted actor, since any
PR touching license-relevant paths runs this job).

Isolated in its own commit, paired with the self.check-licenses
chainguard policy: revert this alone if it turns out redundant or
conflicts with follow-up work on that workflow.

---------

Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
Co-authored-by: Roch Devost <roch.devost@datadoghq.com>
…th 8 updates (#9411)

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

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1085.0` | `3.1086.0` |
| [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1085.0` | `3.1086.0` |



Updates `@aws-sdk/client-bedrock-runtime` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-bedrock-runtime)

Updates `@aws-sdk/client-dynamodb` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-dynamodb/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-dynamodb)

Updates `@aws-sdk/client-kinesis` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kinesis/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-kinesis)

Updates `@aws-sdk/client-lambda` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-lambda/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-lambda)

Updates `@aws-sdk/client-s3` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-s3)

Updates `@aws-sdk/client-sfn` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sfn/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-sfn)

Updates `@aws-sdk/client-sns` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sns/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-sns)

Updates `@aws-sdk/client-sqs` from 3.1085.0 to 3.1086.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sqs/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1086.0/clients/client-sqs)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-bedrock-runtime"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-dynamodb"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-kinesis"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-lambda"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sfn"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sns"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sqs"
  dependency-version: 3.1086.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
...

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

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

| Package | From | To |
| --- | --- | --- |
| [@ai-sdk/amazon-bedrock](https://github.com/vercel/ai/tree/HEAD/packages/amazon-bedrock) | `5.0.16` | `5.0.20` |
| [@ai-sdk/anthropic](https://github.com/vercel/ai/tree/HEAD/packages/anthropic) | `4.0.11` | `4.0.14` |
| [@ai-sdk/google](https://github.com/vercel/ai/tree/HEAD/packages/google) | `4.0.11` | `4.0.14` |
| [@ai-sdk/openai](https://github.com/vercel/ai/tree/HEAD/packages/openai) | `4.0.11` | `4.0.13` |
| [@anthropic-ai/sdk](https://github.com/anthropics/anthropic-sdk-typescript) | `0.110.0` | `0.111.0` |
| [@openai/agents](https://github.com/openai/openai-agents-js) | `0.13.1` | `0.13.3` |
| [@openai/agents-core](https://github.com/openai/openai-agents-js) | `0.13.1` | `0.13.3` |
| [ai](https://github.com/vercel/ai/tree/HEAD/packages/ai) | `7.0.19` | `7.0.26` |



Updates `@ai-sdk/amazon-bedrock` from 5.0.16 to 5.0.20
- [Release notes](https://github.com/vercel/ai/releases)
- [Changelog](https://github.com/vercel/ai/blob/main/packages/amazon-bedrock/CHANGELOG.md)
- [Commits](https://github.com/vercel/ai/commits/@ai-sdk/amazon-bedrock@5.0.20/packages/amazon-bedrock)

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

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

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

Updates `@anthropic-ai/sdk` from 0.110.0 to 0.111.0
- [Release notes](https://github.com/anthropics/anthropic-sdk-typescript/releases)
- [Changelog](https://github.com/anthropics/anthropic-sdk-typescript/blob/main/CHANGELOG.md)
- [Commits](anthropics/anthropic-sdk-typescript@sdk-v0.110.0...sdk-v0.111.0)

Updates `@openai/agents` from 0.13.1 to 0.13.3
- [Release notes](https://github.com/openai/openai-agents-js/releases)
- [Commits](openai/openai-agents-js@v0.13.1...v0.13.3)

Updates `@openai/agents-core` from 0.13.1 to 0.13.3
- [Release notes](https://github.com/openai/openai-agents-js/releases)
- [Commits](openai/openai-agents-js@v0.13.1...v0.13.3)

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

---
updated-dependencies:
- dependency-name: "@ai-sdk/amazon-bedrock"
  dependency-version: 5.0.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@ai-sdk/anthropic"
  dependency-version: 4.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@ai-sdk/google"
  dependency-version: 4.0.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@ai-sdk/openai"
  dependency-version: 4.0.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@anthropic-ai/sdk"
  dependency-version: 0.111.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ai-and-llm
- dependency-name: "@openai/agents"
  dependency-version: 0.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: "@openai/agents-core"
  dependency-version: 0.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
- dependency-name: ai
  dependency-version: 7.0.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ai-and-llm
...

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

The fetch, request and utility-request tests asserted traces with the 1000ms default while the IPC tests already used 10s. A freshly-spawned Electron app's first traced operation pays cold-start cost, so the first version's fetch consistently exceeded 1000ms on loaded CI runners (both attempts of a run failed on it while the 10s IPC tests passed) — cold-start latency, not trace loss (flushInterval is 0, other versions' fetch passes, and the same cold app's IPC tests deliver within 10s).

Use a shared TRACE_TIMEOUT_MS for every trace assertion. They still resolve the instant the matching trace arrives, so passing runs are unaffected.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ateway inferred spans (#9089)

* adding PoC azure application gateway inferred span

* fixing implementation to prevent overwriting of timestamps

* refactoring gateway implementation to support azure frontdoor

* fixing linting issues -- adding new test case against azure proxies with no timestamp

* cleaning up logic

* cleaning up spacing

* Fixing variable

* Fixing variables

* Linting

* adding a check to ensure that original code path still works

* clean up

* Update packages/dd-trace/src/plugins/util/inferred_proxy.js

Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* reduce logging if no proxy header is defined

* fixing lint issues

* linting

* Fixing issue with timestamp logic

* ensuring paths have slashs if there is a path present

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fixing test typo

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fixing suggested commit and relinted

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Fixing tests

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Revert "Fixing tests"

This reverts commit 665c9f7.

* Revert "Potential fix for pull request finding"

This reverts commit e58b225.

* fixing complex logic

* fixing stray space

---------

Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…th 12 updates (#9428)

Bumps the cloud-and-messaging group with 12 updates in the /packages/dd-trace/test/plugins/versions directory:

| Package | From | To |
| --- | --- | --- |
| [@aws-sdk/client-bedrock-runtime](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-bedrock-runtime) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1086.0` | `3.1089.0` |
| [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1086.0` | `3.1089.0` |
| [@smithy/core](https://github.com/smithy-lang/smithy-typescript/tree/HEAD/packages/core) | `3.29.3` | `3.29.5` |
| [@smithy/smithy-client](https://github.com/smithy-lang/smithy-typescript/tree/HEAD/packages/smithy-client) | `4.14.8` | `4.14.10` |
| [bullmq](https://github.com/taskforcesh/bullmq) | `5.80.2` | `5.80.6` |
| [durable-functions](https://github.com/Azure/azure-functions-durable-js) | `3.4.0` | `3.5.0` |



Updates `@aws-sdk/client-bedrock-runtime` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-bedrock-runtime/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-bedrock-runtime)

Updates `@aws-sdk/client-dynamodb` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-dynamodb/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-dynamodb)

Updates `@aws-sdk/client-kinesis` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-kinesis/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-kinesis)

Updates `@aws-sdk/client-lambda` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-lambda/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-lambda)

Updates `@aws-sdk/client-s3` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-s3)

Updates `@aws-sdk/client-sfn` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sfn/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-sfn)

Updates `@aws-sdk/client-sns` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sns/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-sns)

Updates `@aws-sdk/client-sqs` from 3.1086.0 to 3.1089.0
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-sqs/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.1089.0/clients/client-sqs)

Updates `@smithy/core` from 3.29.3 to 3.29.5
- [Release notes](https://github.com/smithy-lang/smithy-typescript/releases)
- [Changelog](https://github.com/smithy-lang/smithy-typescript/blob/main/packages/core/CHANGELOG.md)
- [Commits](https://github.com/smithy-lang/smithy-typescript/commits/@smithy/core@3.29.5/packages/core)

Updates `@smithy/smithy-client` from 4.14.8 to 4.14.10
- [Release notes](https://github.com/smithy-lang/smithy-typescript/releases)
- [Changelog](https://github.com/smithy-lang/smithy-typescript/blob/main/packages/smithy-client/CHANGELOG.md)
- [Commits](https://github.com/smithy-lang/smithy-typescript/commits/@smithy/smithy-client@4.14.10/packages/smithy-client)

Updates `bullmq` from 5.80.2 to 5.80.6
- [Release notes](https://github.com/taskforcesh/bullmq/releases)
- [Commits](taskforcesh/bullmq@v5.80.2...v5.80.6)

Updates `durable-functions` from 3.4.0 to 3.5.0
- [Release notes](https://github.com/Azure/azure-functions-durable-js/releases)
- [Commits](Azure/azure-functions-durable-js@v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-bedrock-runtime"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-dynamodb"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-kinesis"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-lambda"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sfn"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sns"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@aws-sdk/client-sqs"
  dependency-version: 3.1089.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: "@smithy/core"
  dependency-version: 3.29.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
- dependency-name: "@smithy/smithy-client"
  dependency-version: 4.14.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
- dependency-name: bullmq
  dependency-version: 5.80.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
- dependency-name: durable-functions
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
...

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

* test(appsec): deflake RASP SSRF "should not detect threat" express tests

* test(appsec): disable proxy on RASP SSRF outbound "not detect threat" requests
…#9219)

* feat(aiguard): evaluating anthropic calls with AI guard automatically
Coverage upload instrumentation converted rejected NYC reports into fulfilled promises, allowing the command to succeed without a report.
* fix(graphql): preserve hook error overrides

The orchestrion lifecycle applied GraphQL errors after application hooks, so hooks could no longer clear expected failures. Make hooks the final span writer for result errors, synchronous throws, and rejected executor results while retaining GraphQL error events.

Fixes: #9423

* fix(graphql): release execute guards before hooks

The orchestrion migration kept re-entry guards active while hooks ran, so a hook starting another operation with the same context silently skipped tracing. Release the guards before handing control to application code while still finishing the span after the hook.
* spike(llmobs): control-plane HTTP client for experiments

Initial spike toward unifying the standalone Node LLM Experiments SDK
into dd-trace under llmobs. Adds a fetch-based control-plane client
(no new dependencies, same approach as src/aiguard/client.js) that
sources DD_API_KEY / DD_APP_KEY / site from tracer config, resolves the
api.<site> host, and implements get-or-create project as the first
working call. Includes a mocha/sinon spec.

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

* feat(llmobs): datasets & experiments via tracer.llmobs.experiments

Ports the standalone Node LLM Experiments SDK into dd-trace as an
llmobs submodule, exposed as tracer.llmobs.experiments. No new runtime
dependency — all backend calls go through the global fetch client from
the spike, sourcing DD_API_KEY / DD_APP_KEY / site from tracer config.

- dataset.js / experiment.js / result.js: Dataset + DatasetRecord,
  Experiment.run() orchestration with inline span/metric builders,
  ExperimentResult/Row.
- index.js: Experiments facade (createDataset, pullDataset with
  exponential backoff, experiment()) + createExperiments gating.
- noop.js: NoopExperiments for when llmobs is disabled or keys are
  missing; wired into both the LLMObs SDK and its noop.
- index.d.ts: llmobs.Experiments / Dataset / Experiment / ExperimentResult types.
- tests: mocha/sinon specs for client, dataset+experiment run, and the
  facade (23 passing); plus a manual end-to-end example script.

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

* test(llmobs): cover experiments error paths and branches

Raises patch coverage on the experiments module to ~99.7% lines: adds
tests for dataset getters + DatasetRecord instances, non-array push
response padding, dataset/records/experiment create failures, the
failed-status path when posting events errors, categorical stringify
branches, experiment getters, the client `site` getter, the facade
createDataset/experiment factories, the no-op operations, and
pullDataset list-error and expected-count-not-met errors.

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

* fix(llmobs): generate experiment span/trace ids with the tracer's own id module

Reuse the same root-span convention as opentracing/span.js (a single random
64-bit span id, reused as the trace id's low 64 bits with a start-time-derived
high part) instead of a bespoke 32-char hex id shared between span and trace.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix(llmobs): mark an experiment failed when any row or evaluation errors

A task/evaluator error is isolated per row (the run doesn't abort), but the
experiment status still reported "completed" even when rows failed. Track
whether any row hit an error and report the experiment as "failed" overall
in that case.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* fix(llmobs): don't drop records pushed mid-flight, report push status

Dataset#push() advanced #pushedCount to the live records length after
awaiting the records POST, so a record added while that POST was in
flight would be silently skipped by the next push. Advance by the
snapshotted pending count instead.

Also read created records from the append-records response's top-level
`records` field (it doesn't use the usual `data` envelope), and resolve
push()/ensureCreatedAndPushed() with { pushedCount, totalCount } so
callers can confirm a push landed fully.

* chore(llmobs): mirror the experiments type surface into index.d.v5.ts

Datasets & Experiments interfaces were added to index.d.ts (v6) but not
yet to the frozen v5 type surface, so v5 consumers had no types for
tracer.llmobs.experiments. Mirror the same interfaces (Dataset,
Experiment, Experiments, DatasetPushResult, etc.) into index.d.v5.ts.

* fix(llmobs): follow pagination when pulling dataset records

pullDataset() only fetched the first page of a dataset's records
endpoint, so a dataset with more records than fit on one page returned
a silently truncated Dataset, and polling for an expectedRecordCount
beyond the first page reread the same page until the wait budget
expired. Follow the response's meta.after cursor via page[cursor]
until the last page.

* fix(llmobs): throw an actionable error when no project name is configured

createExperiments() already falls back to config.service when
llmobs.mlApp isn't set, but if neither is set it silently sent an empty
project name to the backend and failed with a confusing "Failed to
create or get project" error. Gate on it up front and return a
NoopExperiments (consistent with the disabled/missing-keys gates) that
tells the user exactly which env var or tracer.init() option to set
before retrying.

* fix(llmobs): classify evaluator metrics to match dd-trace-py

Object-valued evaluator results were stringified into a single opaque
categorical value instead of using metric_type "json", making them
unreadable in the UI. Mirror dd-trace-py's
_generate_metric_from_evaluation classification: dicts (plain objects)
become json, everything else non-primitive (including arrays) falls
through to categorical with a lowercased string representation.

* fix(llmobs): propagate the underlying error when pulling dataset records fails

pullDataset() previously swallowed a records-fetch error into a
successful empty Dataset whenever expectedRecordCount wasn't set,
masking real API/network failures as an empty dataset.

* chore(llmobs): tighten comments in the experiments module

Drop the stale "Spike:" label, orphaned W1/W2 workaround tags, and
version-specific (v0.1) wording; keep the substance each comment was
actually conveying.

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
* update openai testing version

* introduce new normalization for openai custom file boundaries

* test and cassette changes
* ci: update one-pipeline to 1.1.0

* Add new shared-pipeline stages

---------

Co-authored-by: gh-worker-campaigns-3e9aa4[bot] <244854796+gh-worker-campaigns-3e9aa4[bot]@users.noreply.github.com>
Co-authored-by: Laplie Anderson <randomanderson@users.noreply.github.com>
…9083)

* feat(llmobs): capture audio in messages and OpenAI chat completions

Add LLM Observability audio support, mirroring dd-trace-py.

J0 foundation: AudioPart on messages with formatAudioPart /
audioMimeTypeFromFormat helpers; the tagger validates audioParts
(requires mimeType + exactly one of content/attachmentKey) and emits
the snake_case wire shape audio_parts: [{mime_type, content|attachment_key}].
Public TS types added to index.d.ts and index.d.v5.ts.

J1a OpenAI chat: add the multimodal chat content flattener
(extractContentParts) and wire input audio + non-streamed output audio
into _tagChatCompletion. Model-agnostic (gpt-audio*, gpt-4o-audio-preview).

Defensive guards in the audio helpers so a malformed auto-instrumented
payload soft-skips instead of throwing (which would disable the plugin).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(llmobs): cover audio parity branches; tag audio validation errors

Address review findings:
- Tag non-string audio content/attachmentKey failures with `invalid_io_messages`
  so they're categorized in annotation telemetry (was routed through
  #tagConditionalString, which omits the tag).
- Add tests for the input-flattening behavior change (text + image_url chat
  input) and the output-audio no-data transcript fallback, with cassettes.
- Add unit tests for audioMimeTypeFromFormat, formatAudioPart, and the
  extractContentParts flattener (image/audio-with-data/[audio]-fallback/
  multiple/unknown-type), pinning parity with dd-trace-py.
- Note formatAudioPart's supported binary input shapes (Buffer/Uint8Array).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* Apply suggestions from code review

Co-authored-by: Zachary Groves <32471391+ZStriker19@users.noreply.github.com>

* chore(llmobs): trim formatAudioPart comment

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(llmobs): include sampling tags in audio annotate assertion

Master added LLMObs span sampling (`_ml_obs.sample_rate` /
`_ml_obs.sampling_decision` on every annotated span). Update the audio
annotate test to expect them, matching the sibling annotate tests.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* refactor(llmobs): address review feedback on audio support

- Drop `attachmentKey` from the public AudioPart type (backend-only concept
  the SDK never emits); make `content` required.
- Make `audioMimeTypeFromFormat(fmt, mimeTypeLookup)` provider-agnostic in
  util.js; move the OpenAI mp3->audio/mpeg map into the openai plugin.
- Use the raw `part.text` in extractContentParts.
- Re-record the OpenAI audio/image cassettes against the real API (realistic
  headers); keep the hand-authored synthetic no-audio-data cassette with a note.
- Fold the extractContentParts coverage into openaiv4.spec.js and remove the
  standalone openai utils.spec.js.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore: remove accidentally committed node_modules symlink and review artifact

The node_modules symlink (local test scaffolding) and codex_review markdown
were committed by mistake; the symlink was breaking CI. Neither belongs in the repo.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Sam Brenner <106700075+sabrenner@users.noreply.github.com>
@dd-octo-sts

dd-octo-sts Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

Overall package size

Self size: 7.52 MB
Deduped: 8.18 MB
No deduping: 8.18 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.3.2 | 124.41 kB | 440.65 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

@BridgeAR
BridgeAR marked this pull request as ready for review July 22, 2026 17:02
@BridgeAR
BridgeAR requested review from a team as code owners July 22, 2026 17:02
@BridgeAR
BridgeAR requested review from khanayan123, pavlokhrebto, shreyamalpani, tlhunter and typotter and removed request for a team July 22, 2026 17:02

@datadog-prod-us1-5 datadog-prod-us1-5 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: PASS

More details

Agentless Feature Flag polling correctly preserves last-known-good configuration across malformed payloads, retries transient failures, and stops cleanly; Anthropic lifecycle gates and LLM Experiments pagination also handled the exercised failure and alternate-consumption paths without a reproducible regression. No additional tests recommended: no production-data insight was available and the existing focused suites already cover the adversarial shapes reviewed.

Was this helpful? React 👍 or 👎

📊 Validated against 174 scenarios · Open Bits AI session

🤖 Datadog Autotest · Commit 1f65b31 · What is Autotest? · Any feedback? Reach out in #autotest

@datadog-prod-us1-5

datadog-prod-us1-5 Bot commented Jul 22, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 99.62%
Overall Coverage: 98.43%

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

@pr-commenter

pr-commenter Bot commented Jul 22, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-07-22 17:12:13

Comparing candidate commit 1f65b31 in PR branch v6.5.0-proposal with baseline commit af7a705 in branch v6.x.

📊 Benchmarking dashboard

Found 1 performance improvements and 0 performance regressions! Performance is the same for 2324 metrics, 33 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:encoders-0.4-events-native-20

  • 🟩 max_rss_usage [-12.083MB; -3.345MB] or [-8.376%; -2.319%]

Unstable benchmarks

These benchmarks have a confidence interval too wide to call a change; treat them as noise rather than signal.

scenario:appsec-appsec-enabled-24

  • unstable execution_time [-203.809ms; +209.574ms] or [-7.703%; +7.920%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-235.296ms; +242.152ms] or [-9.180%; +9.447%]

scenario:appsec-appsec-enabled-with-attacks-24

  • unstable execution_time [-163928.958µs; +164007.691µs] or [-5.315%; +5.318%]

scenario:appsec-appsec-enabled-with-attacks-26

  • unstable execution_time [-184415.167µs; +185268.000µs] or [-6.339%; +6.368%]

scenario:appsec-control-20

  • unstable execution_time [-127.551ms; +130.598ms] or [-7.830%; +8.017%]

scenario:appsec-control-24

  • unstable execution_time [-110.834ms; +115.921ms] or [-8.957%; +9.368%]

scenario:appsec-control-26

  • unstable execution_time [-119.009ms; +136.046ms] or [-9.628%; +11.006%]

scenario:appsec-iast-no-vulnerability-control-20

  • unstable execution_time [-16.125ms; +10.489ms] or [-6.256%; +4.069%]

scenario:appsec-iast-no-vulnerability-iast-enabled-default-config-20

  • unstable execution_time [-13948.224µs; +14879.351µs] or [-5.386%; +5.745%]

scenario:appsec-iast-with-vulnerability-iast-enabled-default-config-20

  • unstable execution_time [-33.077ms; +29.302ms] or [-6.014%; +5.328%]

scenario:debugger-line-probe-with-snapshot-default-26

  • unstable cpu_user_time [-2287.839ms; +714.834ms] or [-24.026%; +7.507%]
  • unstable execution_time [-2301.110ms; +702.300ms] or [-22.445%; +6.850%]
  • unstable instructions [-20.5G instructions; +6.4G instructions] or [-25.754%; +8.090%]
  • unstable throughput [-134.432op/s; +461.465op/s] or [-4.161%; +14.282%]

scenario:debugger-line-probe-with-snapshot-minimal-26

  • unstable cpu_user_time [-3629.818ms; +3644.327ms] or [-35.176%; +35.316%]
  • unstable execution_time [-3634.069ms; +3643.119ms] or [-32.837%; +32.919%]
  • unstable instructions [-32572.6M instructions; +32434.9M instructions] or [-37.651%; +37.491%]
  • unstable max_rss_usage [-12151.887KB; +10721.487KB] or [-7.494%; +6.611%]
  • unstable throughput [-709.281op/s; +714.512op/s] or [-23.137%; +23.308%]

scenario:debugger-line-probe-without-snapshot-26

  • unstable cpu_user_time [-2.266s; +4.531s] or [-22.869%; +45.734%]
  • unstable execution_time [-2.255s; +4.513s] or [-21.207%; +42.430%]
  • unstable instructions [-20.3G instructions; +40.4G instructions] or [-24.492%; +48.723%]
  • unstable max_rss_usage [-7.138MB; +14.819MB] or [-4.459%; +9.258%]
  • unstable throughput [-937.381op/s; +450.197op/s] or [-29.935%; +14.377%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-270.115ms; +357.100ms] or [-5.489%; +7.256%]
  • unstable execution_time [-270.724ms; +358.503ms] or [-5.422%; +7.180%]
  • unstable throughput [-125231.953op/s; +95960.668op/s] or [-7.460%; +5.716%]

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

  • unstable max_rss_usage [-50.731MB; +12.020MB] or [-24.353%; +5.770%]

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

  • unstable cpu_user_time [-1275.497ms; +79.329ms] or [-10.435%; +0.649%]
  • unstable execution_time [-1311.045ms; +80.395ms] or [-10.495%; +0.644%]
  • unstable throughput [-0.622op/s; +6.978op/s] or [-0.963%; +10.805%]

scenario:plugin-memcached-hashring-24

  • unstable execution_time [-79.687ms; +189.579ms] or [-3.096%; +7.365%]

scenario:test-optimization-large-suite-20

  • unstable max_rss_usage [-5287.672KB; +3357.006KB] or [-6.653%; +4.224%]

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f65b31b0c

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread packages/datadog-instrumentations/src/helpers/hook.js
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.