Skip to content

v5.110.1 proposal - #9102

Closed
dd-octo-sts[bot] wants to merge 13 commits into
v5.xfrom
v5.110.1-proposal
Closed

v5.110.1 proposal#9102
dd-octo-sts[bot] wants to merge 13 commits into
v5.xfrom
v5.110.1-proposal

Conversation

@dd-octo-sts

@dd-octo-sts dd-octo-sts Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Performance

  • loader: Match instrumented modules with a shouldInclude predicate #9026

Internal (CI, Testing, Benchmarking)

  • coverage: Merge per-integration coverage in All Green before upload #9086
  • Dependencies: Bump openai #9122
  • General: Introduce namespace field and start pruning internalPropertyName #8943
  • General: Key plugin version folders by single-digit major #9052
  • graphql: Migrate shimmer to orchestrion instrumentation #7757
  • kafkajs: Stop pinning the produce offset in the sendBatch test #9074
  • LLM Observability: Use DD_LLMOBS_ENABLED in tagger sampling fixtures #9107
  • release: Fix branch-diff Infinity crash on scientific notation SHAs #9101
  • release: Fix publish by dropping dist-tag add #9100

rochdev and others added 5 commits June 26, 2026 21:11
The OIDC-exchanged token from the npm registry is only valid for the
publish operation; using it for npm dist-tag add produced E401. Remove
the multi-tag logic and the OIDC exchange entirely: each branch now
publishes with a single tag (latest for the current release line,
latest-nodeXX for older lines), which is all npm's trusted publishing
model supports without a stored token.

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

Each test cell uploaded its own report to Codecov, so a commit sent ~430
uploads. Codecov silently parks uploads past its ~150-per-commit ceiling in
`started` and never merges them, so roughly 40 reports' worth of coverage was
dropped from every commit. The Datadog coverage upload was separately broken:
`upload-coverage-artifact` probed for files with `find -maxdepth 1`, but the
report lives one level deeper at `coverage/node-<version>/`, so the check found
nothing, no `coverage-*` artifact was produced, and `datadog-ci coverage
upload` reported nothing while passing green.

All Green already downloads every `coverage-*` artifact to drive the Datadog
upload, so it is the one place that sees a whole commit's coverage. It now
groups the per-cell reports by integration and uploads ~100 groups to both
backends instead of ~430 per-cell reports:

1. `upload-coverage-artifact` recurses for the report files and names each
   artifact `coverage-<flag>__<job>-<index>` so matrix cells that share a flag
   (cypress varies `spec` outside its flag) stop clobbering each other.
2. `scripts/group-coverage.mjs` sorts each cell's report into its integration's
   directory, stripping Node.js and library versions, which are noise for
   "which integration regressed". Reports are not merged locally — both
   backends merge same-flag uploads server-side — so each report passes through
   byte-for-byte and the harness needs no istanbul dependency in All Green's
   sparse checkout. ~430 cells collapse to ~100 groups.
3. Each cell emits both lcov and istanbul JSON: Codecov reads branch and
   function coverage from the JSON (its lcov parser ingests only line hits),
   Datadog reads the lcov and does not ingest the JSON. All Green uploads each
   format to the backend that reads it, one group per integration, flagged with
   the integration name.

`master-coverage` still rides every Codecov upload on PRs targeting master so
the `codecov/patch` gate fires; reruns de-duplicate to the newest run so a
stale rerun's counters are not double-counted.
…9074)

The "should emit one kafka.produce span per topicMessages entry" test
hard-coded kafka.messages.offsets to start_offset "0". Kafka produce is
at-least-once: a transient NOT_LEADER_FOR_PARTITION right after topic
creation makes kafkajs retry and advance the broker-assigned base offset
past 0, so the span faithfully reports a non-zero offset (CI observed
"1") and the assertion never matched before the timeout. The expected
offsets are read back from the sendBatch result instead, which still
pins the per-topic isolation the test was written for.

Each topicMessages entry is its own root span, so the two spans are
separate traces the agent may deliver in a single payload in any order;
the span lookup now scans every trace rather than only traces[0].
Key each expanded major by its bare major (`versions/mongodb@3`) instead of a
bounded range (`versions/mongodb@>=3.0.0 <4.0.0`). The bare major reads cleanly
as a folder name and covers each major's latest, including the floor major's,
which the range form dropped. Follows the shared resolver from #9019.

Widening the matrix to every major's latest surfaced several latent failures:

1. A bare-major key resolves to that major's newest version, so a range ending
   inside its top major overshoots: microgateway-core `>=2.1 <=3.0.0` keyed `3`
   installed 3.3.7 and the span came back `web.request` instead of
   `microgateway.request`. The top major keeps the declared range whenever it
   stops short of the major's ceiling; fully-spanned and lower majors stay bare.
2. `versions/ai@4` and `@langchain/core@0` resolve to versions that have no VCR
   cassette and would hit the live API (401). A central `brokenVersions`
   registry drops a matching resolved version and surfaces the reason as a
   pending test, each entry a stop-gap carrying a TODO.
3. A manifest carrying a `workspace:` protocol dependency was copied verbatim
   into a generated workspace, so yarn failed with "Couldn't find any versions
   for X that matches workspace:*". Fall back to the pinned compatible version.
4. The Apollo fetch-failure test gated the error span on `version > '2.3.0'`, a
   lexicographic compare that breaks once the key is bare (`'2' > '2.3.0'` is
   false). Compare the resolved version with `semver.gt`.
5. Single-digit keying renames folders that several specs hard-code by range
   (express, langchain, bedrock runtime, aws-sdk). The bedrock require threw
   after `agent.load` with no `agent.close`, leaving the Remote Config poll
   running and hanging the job to the 45-minute timeout; the others silently
   skipped suites. Point the requires at the renamed folders.
…As (#9101)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
@dd-octo-sts

dd-octo-sts Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor Author

Overall package size

Self size: 6.4 MB
Deduped: 7.47 MB
No deduping: 7.47 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.2.0 | 104.26 kB | 843.44 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

@pr-commenter

pr-commenter Bot commented Jun 26, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-06-29 06:50:36

Comparing candidate commit 0384f06 in PR branch v5.110.1-proposal with baseline commit b7f5704 in branch v5.x.

📊 Benchmarking dashboard

Found 11 performance improvements and 15 performance regressions! Performance is the same for 2210 metrics, 50 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:plugin-graphql-long-with-depth-and-collapse-off-24

  • 🟩 max_rss_usage [-54.417MB; -11.035MB] or [-10.738%; -2.178%]

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

  • 🟩 max_rss_usage [-73.741MB; -26.855MB] or [-15.720%; -5.725%]

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

  • 🟩 instructions [-6.1G instructions; -1.9G instructions] or [-9.907%; -3.084%]

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

  • 🟩 cpu_user_time [-556.598ms; -208.179ms] or [-11.426%; -4.274%]
  • 🟩 execution_time [-562.539ms; -210.443ms] or [-11.296%; -4.226%]
  • 🟩 instructions [-2.8G instructions; -1.0G instructions] or [-10.853%; -4.114%]
  • 🟩 throughput [+6.868op/s; +18.370op/s] or [+4.232%; +11.320%]

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

  • 🟩 cpu_user_time [-390.784ms; -109.866ms] or [-7.672%; -2.157%]
  • 🟩 execution_time [-393.579ms; -113.774ms] or [-7.540%; -2.180%]
  • 🟩 instructions [-1.9G instructions; -0.7G instructions] or [-7.194%; -2.684%]
  • 🟩 throughput [+3.308op/s; +11.592op/s] or [+2.143%; +7.510%]

scenario:startup-with-tracer-everything-20

  • 🟥 cpu_user_time [+73.047ms; +123.873ms] or [+4.425%; +7.505%]
  • 🟥 execution_time [+76.299ms; +130.086ms] or [+3.972%; +6.772%]
  • 🟥 instructions [+153.1M instructions; +250.1M instructions] or [+2.600%; +4.247%]

scenario:startup-with-tracer-everything-24

  • 🟥 cpu_user_time [+42.312ms; +85.465ms] or [+2.995%; +6.049%]
  • 🟥 execution_time [+43.248ms; +86.256ms] or [+2.546%; +5.077%]

scenario:startup-with-tracer-everything-26

  • 🟥 cpu_user_time [+49.803ms; +89.098ms] or [+3.738%; +6.688%]
  • 🟥 execution_time [+50.182ms; +90.104ms] or [+3.109%; +5.582%]
  • 🟥 instructions [+104.8M instructions; +172.0M instructions] or [+2.065%; +3.389%]

scenario:startup-with-tracer-everything-esm-20

  • 🟥 cpu_user_time [+65.321ms; +127.438ms] or [+2.852%; +5.563%]
  • 🟥 execution_time [+63.057ms; +126.537ms] or [+2.412%; +4.840%]
  • 🟥 instructions [+152.2M instructions; +254.1M instructions] or [+2.262%; +3.777%]

scenario:startup-with-tracer-everything-esm-24

  • 🟥 cpu_user_time [+48.545ms; +90.165ms] or [+2.873%; +5.335%]
  • 🟥 execution_time [+49.128ms; +94.634ms] or [+2.449%; +4.718%]

scenario:startup-with-tracer-everything-esm-26

  • 🟥 cpu_user_time [+46.256ms; +92.981ms] or [+2.858%; +5.746%]
  • 🟥 execution_time [+46.129ms; +95.489ms] or [+2.386%; +4.939%]

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 [-182563.106µs; +182354.306µs] or [-6.911%; +6.903%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-203.864ms; +207.909ms] or [-8.143%; +8.305%]

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

  • unstable execution_time [-161.303ms; +156.487ms] or [-5.622%; +5.454%]

scenario:appsec-control-20

  • unstable execution_time [-157893.072µs; +158861.472µs] or [-9.069%; +9.124%]

scenario:appsec-control-24

  • unstable execution_time [-103162.868µs; +104538.435µs] or [-8.506%; +8.619%]

scenario:appsec-control-26

  • unstable execution_time [-106.542ms; +114.914ms] or [-8.886%; +9.585%]

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

  • unstable cpu_user_time [-3000.582ms; +1971.122ms] or [-34.168%; +22.445%]
  • unstable execution_time [-3037.114ms; +2000.499ms] or [-32.082%; +21.132%]
  • unstable instructions [-25.4G instructions; +16.8G instructions] or [-35.280%; +23.410%]
  • unstable max_rss_usage [-12.982MB; +8.477MB] or [-8.102%; +5.290%]
  • unstable throughput [-615.716op/s; +944.920op/s] or [-17.254%; +26.479%]

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

  • unstable cpu_user_time [-2.397s; +5.042s] or [-24.685%; +51.919%]
  • unstable execution_time [-2.393s; +5.089s] or [-22.978%; +48.866%]
  • unstable instructions [-20.8G instructions; +44.9G instructions] or [-25.814%; +55.602%]
  • unstable max_rss_usage [-7.263MB; +14.329MB] or [-4.487%; +8.851%]
  • unstable throughput [-1145.617op/s; +544.045op/s] or [-35.284%; +16.756%]

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

  • unstable cpu_user_time [-2.316s; +0.306s] or [-27.941%; +3.697%]
  • unstable execution_time [-2.342s; +0.312s] or [-26.154%; +3.487%]
  • unstable instructions [-19.7G instructions; +2.6G instructions] or [-29.229%; +3.843%]
  • unstable throughput [-97.180op/s; +725.331op/s] or [-2.607%; +19.456%]

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

  • unstable cpu_user_time [-3287.978ms; +3243.871ms] or [-33.923%; +33.468%]
  • unstable execution_time [-3334.409ms; +3297.452ms] or [-32.105%; +31.749%]
  • unstable instructions [-28829.0M instructions; +28810.9M instructions] or [-35.603%; +35.581%]
  • unstable max_rss_usage [-9051.379KB; +9193.779KB] or [-5.576%; +5.663%]
  • unstable throughput [-738.367op/s; +755.939op/s] or [-22.620%; +23.158%]

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

  • unstable cpu_user_time [-1466.769ms; +476.837ms] or [-18.803%; +6.113%]
  • unstable execution_time [-1479.782ms; +470.059ms] or [-17.468%; +5.549%]
  • unstable instructions [-12.6G instructions; +4.1G instructions] or [-19.923%; +6.511%]
  • unstable throughput [-145.296op/s; +461.616op/s] or [-3.754%; +11.928%]

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

  • unstable cpu_user_time [-2302.815ms; +3664.299ms] or [-25.487%; +40.555%]
  • unstable execution_time [-2329.930ms; +3707.594ms] or [-23.939%; +38.094%]
  • unstable instructions [-20.7G instructions; +32.9G instructions] or [-27.645%; +43.999%]
  • unstable max_rss_usage [-6.446MB; +10.479MB] or [-4.025%; +6.543%]
  • unstable throughput [-832.155op/s; +523.534op/s] or [-24.468%; +15.394%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-424.132ms; +262.905ms] or [-8.713%; +5.401%]
  • unstable execution_time [-427.278ms; +262.800ms] or [-8.651%; +5.321%]
  • unstable throughput [-95586.927op/s; +151554.093op/s] or [-5.620%; +8.910%]

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

  • unstable max_rss_usage [-77.605MB; -28.140MB] or [-18.619%; -6.751%]

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

  • unstable cpu_user_time [-1309.426ms; -216.536ms] or [-12.379%; -2.047%]
  • unstable execution_time [-1322.711ms; -218.783ms] or [-12.343%; -2.042%]
  • unstable max_rss_usage [-16.811MB; +0.215MB] or [-12.564%; +0.161%]
  • unstable throughput [+1.996op/s; +13.525op/s] or [+1.845%; +12.503%]

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

  • unstable max_rss_usage [-1.860MB; +50.765MB] or [-0.968%; +26.415%]

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

  • unstable cpu_user_time [-1.890s; -0.555s] or [-18.420%; -5.413%]
  • unstable execution_time [-1.866s; -0.549s] or [-17.837%; -5.245%]
  • unstable instructions [-8.8G instructions; -3.3G instructions] or [-17.504%; -6.620%]
  • unstable max_rss_usage [-22.260MB; +40.117MB] or [-12.475%; +22.483%]
  • unstable throughput [+3.843op/s; +14.063op/s] or [+4.937%; +18.066%]

scenario:spans-finish-later-26

  • unstable max_rss_usage [-6.282MB; +10.016MB] or [-4.250%; +6.777%]

scenario:test-optimization-large-suite-20

  • unstable max_rss_usage [-4.600MB; +7.592MB] or [-5.674%; +9.363%]

@datadog-datadog-prod-us1

datadog-datadog-prod-us1 Bot commented Jun 26, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 86.61%
Overall Coverage: 88.12%

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

@codecov

codecov Bot commented Jun 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.13274% with 22 lines in your changes missing coverage. Please review.
✅ Project coverage is 93.51%. Comparing base (6b35e7d) to head (0384f06).
⚠️ Report is 1683 commits behind head on v5.x.

Files with missing lines Patch % Lines
loader-hook.mjs 63.33% 11 Missing ⚠️
packages/datadog-plugin-graphql/src/execute.js 97.98% 6 Missing ⚠️
packages/datadog-plugin-graphql/src/parse.js 87.50% 2 Missing ⚠️
initialize.mjs 50.00% 1 Missing ⚠️
...ges/dd-trace/src/llmobs/plugins/langgraph/index.js 0.00% 1 Missing ⚠️
packages/dd-trace/src/span_stats.js 0.00% 1 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             v5.x    #9102       +/-   ##
===========================================
+ Coverage   83.19%   93.51%   +10.31%     
===========================================
  Files         476      889      +413     
  Lines       20153    50856    +30703     
  Branches        0    11830    +11830     
===========================================
+ Hits        16766    47557    +30791     
+ Misses       3387     3299       -88     
Flag Coverage Δ
aiguard 34.62% <55.00%> (?)
aiguard-integration 41.61% <58.92%> (?)
apm-bucket-0 35.38% <55.00%> (?)
apm-bucket-1 40.08% <55.00%> (?)
apm-bucket-2 37.11% <55.00%> (?)
apm-capabilities-tracing 48.32% <16.66%> (?)
apm-integrations-aerospike 32.87% <55.00%> (?)
apm-integrations-confluentinc-kafka-javascript 39.78% <55.00%> (?)
apm-integrations-couchbase 33.26% <55.00%> (?)
apm-integrations-http 41.80% <54.90%> (?)
apm-integrations-kafkajs 40.00% <55.00%> (?)
apm-integrations-next 29.28% <55.00%> (?)
apm-integrations-prisma 34.80% <55.00%> (?)
apm-integrations-tedious 33.64% <55.00%> (?)
appsec 57.18% <70.31%> (?)
appsec-express_fastify_graphql 53.57% <79.09%> (?)
appsec-integration 36.17% <72.30%> (?)
appsec-kafka_ldapjs_lodash 43.46% <57.14%> (?)
appsec-mongodb-core_mongoose_mysql 48.63% <59.25%> (?)
appsec-next 27.57% <55.00%> (?)
appsec-node-serialize_passport_postgres 47.81% <59.25%> (?)
appsec-sourcing_stripe_template 45.37% <64.81%> (?)
debugger 44.20% <54.76%> (?)
instrumentations-bucket-0 27.92% <55.00%> (?)
instrumentations-bucket-1 37.17% <56.09%> (?)
instrumentations-bucket-10 40.22% <55.76%> (?)
instrumentations-bucket-11 27.71% <55.00%> (?)
instrumentations-bucket-12 28.44% <55.00%> (?)
instrumentations-bucket-13 27.54% <55.00%> (?)
instrumentations-bucket-2 30.01% <56.09%> (?)
instrumentations-bucket-3 35.67% <56.09%> (?)
instrumentations-bucket-4 27.83% <55.00%> (?)
instrumentations-bucket-5 36.07% <55.00%> (?)
instrumentations-bucket-6 38.02% <55.00%> (?)
instrumentations-bucket-7 35.77% <56.09%> (?)
instrumentations-bucket-8 36.73% <56.09%> (?)
instrumentations-bucket-9 39.31% <55.76%> (?)
instrumentations-instrumentation-couchbase 45.44% <100.00%> (?)
instrumentations-integration-esbuild 24.78% <53.03%> (?)
llmobs-ai_anthropic_bedrock 39.33% <71.11%> (?)
llmobs-google-genai_langchain_vertex-ai 36.79% <72.91%> (?)
llmobs-openai 39.36% <71.11%> (?)
llmobs-sdk 43.34% <70.73%> (?)
openfeature 37.55% <59.61%> (?)
openfeature-unit 49.84% <59.09%> (?)
platform-core_esbuild_instrumentations-misc 23.34% <59.13%> (?)
platform-integration 47.21% <62.35%> (?)
platform-shimmer_unit-guardrails_webpack 18.71% <21.95%> (?)
plugins-bucket-0 36.14% <52.27%> (?)
plugins-bucket-1 39.42% <53.65%> (?)
plugins-bucket-11 38.21% <52.27%> (?)
plugins-bucket-17 38.92% <55.00%> (?)
plugins-bucket-18 41.77% <18.27%> (?)
plugins-bucket-19 39.33% <91.62%> (?)
plugins-bucket-20 43.03% <55.00%> (?)
plugins-bucket-4 37.51% <56.09%> (?)
plugins-bullmq_cassandra_cookie 39.51% <55.00%> (?)
plugins-cookie-parser_crypto_dd-trace-api 32.98% <55.00%> (?)
plugins-fetch_fs_generic-pool 35.80% <60.00%> (?)
plugins-google-cloud-pubsub_grpc_handlebars 42.86% <55.00%> (?)
plugins-hapi_hono_ioredis 37.53% <55.00%> (?)
plugins-jest_knex_langgraph 32.36% <51.11%> (?)
plugins-mongodb_mongodb-core_mongoose 36.06% <55.00%> (?)
plugins-multer_mysql_mysql2 34.88% <55.00%> (?)
plugins-nats_node-serialize_opensearch 36.91% <55.00%> (?)
plugins-passport-http_pino_postgres 35.28% <55.00%> (?)
plugins-process_pug_redis 34.01% <55.00%> (?)
plugins-undici_url_valkey 35.53% <55.00%> (?)
plugins-vm_winston_ws 37.32% <55.00%> (?)
profiling 43.47% <60.37%> (?)
serverless-aws-sdk-aws-sdk 33.09% <52.27%> (?)
serverless-aws-sdk-bedrockruntime 31.95% <52.27%> (?)
serverless-aws-sdk-client 36.25% <100.00%> (?)
serverless-aws-sdk-dynamodb 33.88% <52.27%> (?)
serverless-aws-sdk-eventbridge 27.05% <53.65%> (?)
serverless-aws-sdk-kinesis 37.19% <50.00%> (?)
serverless-aws-sdk-lambda 34.38% <52.27%> (?)
serverless-aws-sdk-s3 32.38% <52.27%> (?)
serverless-aws-sdk-serverless-peer-service 39.30% <58.13%> (?)
serverless-aws-sdk-sns 38.04% <52.27%> (?)
serverless-aws-sdk-sqs 37.78% <52.27%> (?)
serverless-aws-sdk-stepfunctions 32.96% <52.27%> (?)
serverless-aws-sdk-util 46.67% <100.00%> (?)
serverless-bucket-0 39.24% <56.86%> (?)
serverless-lambda 34.03% <61.53%> (?)
test-optimization-cucumber 52.48% <58.00%> (?)
test-optimization-cypress 49.10% <52.50%> (?)
test-optimization-jest 55.75% <62.74%> (?)
test-optimization-mocha 53.54% <58.82%> (?)
test-optimization-playwright-playwright-atr 43.18% <51.28%> (?)
test-optimization-playwright-playwright-efd 43.44% <51.28%> (?)
test-optimization-playwright-playwright-final-status 43.49% <51.28%> (?)
test-optimization-playwright-playwright-impacted-tests 42.98% <51.28%> (?)
test-optimization-playwright-playwright-reporting 43.27% <51.28%> (?)
test-optimization-playwright-playwright-test-management 44.60% <51.28%> (?)
test-optimization-playwright-playwright-test-span 44.31% <58.00%> (?)
test-optimization-selenium 45.47% <60.00%> (?)
test-optimization-testopt 48.20% <58.57%> (?)
test-optimization-vitest 50.87% <60.00%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

BridgeAR and others added 8 commits June 29, 2026 06:33
…lPropertyName (#8943)

`internalPropertyName` carried a hand-maintained full property path
(`telemetry.debug`, `remoteConfig.enabled`) that diverged from the canonical
env name, so the same configuration was named twice and the two could drift.

A new `namespace` field nests the canonical env name under a property path
(`telemetry.DD_TELEMETRY_DEBUG`), so the runtime path is derived from the
canonical name plus a namespace with no separate alias to maintain. It takes
precedence over `configurationNames` and `internalPropertyName` when resolving
the path, in the eslint sync rule, and in the type generator. Every group of
entries (remoteConfig, telemetry, appsec api-security and sca, profiling,
stats, llmobs, iast security-controls, the per-integration llm span limits)
moves onto it, and their runtime consumers are updated to the renamed keys.

The canonical name telemetry reports is unchanged: the rename only affects how
the property path is derived, not which env name is sent. The namespace object
is always built from the defaults, so the optional chaining and `?? 0`
fallbacks on the api-security accesses guarded a state that cannot occur and
are dropped.

Drive-by fix:

* Exempt integration-test fixture apps from `n/no-extraneous-require`: they
  `require('dd-trace')` as a customer does, so the rule fired once dd-trace
  became locally resolvable (yarn link) but stayed silent on a clean install.
…te (#9026)

import-in-the-middle scanned the include and exclude arrays once per resolved
module — up to ~290 include entries (RegExp.test or string compare) plus a
fileURLToPath on every resolve, nearly all against modules that match nothing.
Supplying iitm 3.2.0's shouldInclude predicate replaces that scan with a single
Set lookup for bare specifiers and one combined RegExp covering every
instrumented node_modules path and the configured security-control subpaths,
plus one RegExp for the exclusions. Over a mixed resolve corpus this drops the
per-resolve matching cost from ~2.5µs to ~25ns (about 100x).

The Set also carries each built-in's node: specifier, mirroring iitm's include
expansion, so `import 'node:crypto'` stays instrumented alongside
`import 'crypto'`. Package names pass through regexpEscape so a metacharacter in
a future package name cannot mis-match.

The .mjs rewriter loader spec was the repository's only .spec.mjs and no CI job
ran it: the misc suite glob matched .spec.js only, and the exercised-tests gate
collected .spec.js/.test.mjs but not .spec.mjs, so it could not flag the orphan.

1. Match *.spec.{js,mjs} in test:instrumentations:misc so the spec runs.
2. Widen verify-exercised-tests globs to @(spec|test).@(js|mjs|cjs) so every
   naming convention is tracked and an unrun one fails the gate.
3. Load the loader through require(esm) where the runtime supports it so its
   transforms land on nyc's CommonJS instrumentation path; gate on
   process.features.require_module so Node 18 falls back to import() instead of
   crashing the suite on the CommonJS compiler's SyntaxError.
The sampling tests in #9030 build their own taggers with `{ llmobs:
{ enabled: true } }`, and #8943 renamed that config key to
`DD_LLMOBS_ENABLED` everywhere it could see. The two landed in parallel,
so #8943 normalized the rest of the file but never saw these four
fixtures. On master the tagger now reads `DD_LLMOBS_ENABLED`, finds it
undefined, and returns before registering the span; `Tagger.tagMap.get`
then yields undefined and the "DROPPED at sampleRate 0" test throws
synchronously, aborting the whole `test:llmobs:sdk:ci` run with exit 7.

Fixes: https://github.com/DataDog/dd-trace-js/actions/runs/28265509637/job/83751636644
)

feat(graphql): migrate instrumentation to orchestrion

  Migrates GraphQL instrumentation from shimmer wrappers to orchestrion AST rewriting for graphql execute / parse / validate entry points, including CJS and ESM paths for graphql >=0.10 and @graphql-tools/executor.

  Moves resolver instrumentation into the GraphQL execute plugin. The execute plugin now owns per-execute root context, resolver wrapping, resolve-span lifecycle, source tracking, and resolver hook invocation. The old separate resolve plugin is removed.

  Preserves and tests the existing cross-feature contracts:
  - IAST still receives one apm:graphql:resolve:start publish per resolver call, using the actual GraphQL args object.
  - AppSec still receives resolver payloads through datadog:graphql:resolver:start and can abort synchronously through the shared abort controller.
  - depth only limits resolve-span creation; IAST/AppSec resolver publishes still happen for depth-gated fields.
  - depth-gated resolvers now honor abort signals before falling through the no-span fast path.
  - caller-owned execute args and contextValue are preserved without mutation.
  - default field resolver behavior matches graphql for primitive parent values.
  - graphql-yoga / @graphql-tools/executor execution is instrumented.

  Adds public TypeScript declarations for the GraphQL resolve hook and FieldContext payload.

  Keeps the implementation orchestrion-only, with no shimmer fallback, and updates the GraphQL long benchmark calibration for the migrated hot path.

  Regression coverage was added for:
  - resolver abort behavior past the configured depth
  - depth: 0 AppSec resolver-channel publishing
  - primitive-source defaultFieldResolver parity
  - caller-supplied and frozen execute args
  - primitive contextValue forwarding
  - Yoga normalized executor instrumentation
  - IAST/AppSec per-resolver channel cardinality

  Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
  Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
Bumps the test-versions group with 1 update in the /integration-tests/esbuild directory: [openai](https://github.com/openai/openai-node).


Updates `openai` from 6.44.0 to 6.45.0
- [Release notes](https://github.com/openai/openai-node/releases)
- [Changelog](https://github.com/openai/openai-node/blob/main/CHANGELOG.md)
- [Commits](openai/openai-node@v6.44.0...v6.45.0)

---
updated-dependencies:
- dependency-name: openai
  dependency-version: 6.45.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
...

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

Bumps the cloud-and-messaging group with 10 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.1074.0` | `3.1075.0` |
| [@aws-sdk/client-dynamodb](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-dynamodb) | `3.1074.0` | `3.1075.0` |
| [@aws-sdk/client-kinesis](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-kinesis) | `3.1074.0` | `3.1075.0` |
| [@aws-sdk/client-lambda](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-lambda) | `3.1074.0` | `3.1075.0` |
| [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) | `3.1074.0` | `3.1075.0` |
| [@aws-sdk/client-sfn](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sfn) | `3.1074.0` | `3.1075.0` |
| [@aws-sdk/client-sns](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sns) | `3.1074.0` | `3.1075.0` |
| [@aws-sdk/client-sqs](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-sqs) | `3.1074.0` | `3.1075.0` |
| [azure-functions-core-tools](https://github.com/Azure/azure-functions-core-tools) | `4.12.0` | `4.12.1` |
| [durable-functions](https://github.com/Azure/azure-functions-durable-js) | `3.3.1` | `3.4.0` |



Updates `@aws-sdk/client-bedrock-runtime` from 3.1074.0 to 3.1075.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.1075.0/clients/client-bedrock-runtime)

Updates `@aws-sdk/client-dynamodb` from 3.1074.0 to 3.1075.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.1075.0/clients/client-dynamodb)

Updates `@aws-sdk/client-kinesis` from 3.1074.0 to 3.1075.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.1075.0/clients/client-kinesis)

Updates `@aws-sdk/client-lambda` from 3.1074.0 to 3.1075.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.1075.0/clients/client-lambda)

Updates `@aws-sdk/client-s3` from 3.1074.0 to 3.1075.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.1075.0/clients/client-s3)

Updates `@aws-sdk/client-sfn` from 3.1074.0 to 3.1075.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.1075.0/clients/client-sfn)

Updates `@aws-sdk/client-sns` from 3.1074.0 to 3.1075.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.1075.0/clients/client-sns)

Updates `@aws-sdk/client-sqs` from 3.1074.0 to 3.1075.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.1075.0/clients/client-sqs)

Updates `azure-functions-core-tools` from 4.12.0 to 4.12.1
- [Release notes](https://github.com/Azure/azure-functions-core-tools/releases)
- [Changelog](https://github.com/Azure/azure-functions-core-tools/blob/4.12.1/release_notes.md)
- [Commits](Azure/azure-functions-core-tools@4.12.0...4.12.1)

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

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-bedrock-runtime"
  dependency-version: 3.1075.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.1075.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.1075.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.1075.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.1075.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.1075.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.1075.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.1075.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: cloud-and-messaging
- dependency-name: azure-functions-core-tools
  dependency-version: 4.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: cloud-and-messaging
- dependency-name: durable-functions
  dependency-version: 3.4.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>
…pdates (#9128)

Bumps the test-versions group with 4 updates in the /packages/dd-trace/test/plugins/versions directory: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [pnpm](https://github.com/pnpm/pnpm/tree/HEAD/pnpm11/pnpm), [protobufjs](https://github.com/protobufjs/protobuf.js) and [stripe](https://github.com/stripe/stripe-node).


Updates `@types/node` from 26.0.0 to 26.0.1
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Updates `pnpm` from 11.8.0 to 11.9.0
- [Release notes](https://github.com/pnpm/pnpm/releases)
- [Changelog](https://github.com/pnpm/pnpm/blob/main/pnpm11/pnpm/CHANGELOG.md)
- [Commits](https://github.com/pnpm/pnpm/commits/v11.9.0/pnpm11/pnpm)

Updates `protobufjs` from 8.6.4 to 8.6.5
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](protobufjs/protobuf.js@protobufjs-v8.6.4...protobufjs-v8.6.5)

Updates `stripe` from 22.2.3 to 22.3.0
- [Release notes](https://github.com/stripe/stripe-node/releases)
- [Changelog](https://github.com/stripe/stripe-node/blob/master/CHANGELOG.md)
- [Commits](stripe/stripe-node@v22.2.3...v22.3.0)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-versions
- dependency-name: pnpm
  dependency-version: 11.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
- dependency-name: protobufjs
  dependency-version: 8.6.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-versions
- dependency-name: stripe
  dependency-version: 22.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-versions
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@dd-octo-sts
dd-octo-sts Bot force-pushed the v5.110.1-proposal branch from 709c44b to 0384f06 Compare June 29, 2026 06:33
@dd-octo-sts

dd-octo-sts Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #9150.

@dd-octo-sts dd-octo-sts Bot closed this Jun 30, 2026
@dd-octo-sts
dd-octo-sts Bot deleted the v5.110.1-proposal branch June 30, 2026 06:26
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.

3 participants