Skip to content

v5.121.0 proposal - #9712

Draft
dd-octo-sts[bot] wants to merge 9 commits into
v5.xfrom
v5.121.0-proposal
Draft

v5.121.0 proposal#9712
dd-octo-sts[bot] wants to merge 9 commits into
v5.xfrom
v5.121.0-proposal

Conversation

@dd-octo-sts

@dd-octo-sts dd-octo-sts Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Features

  • General: Configure server error statuses #9638
  • LLM Observability: Accept image_parts on messages #9684
  • mysql, mysql2: Trace pool connection acquisition #8920

Fixes

  • datastreams: Start a new pathway for a message that carries no context #9575
  • kafka: Preserve application headers on native produce path #9595
  • Test Optimization: Defer Vitest EFD faultiness detection #9700

Internal (CI, Testing, Benchmarking)

  • Dependencies: Bump mocha #9710
  • Test Optimization: Stabilize output file limit test #9702

joizddog and others added 7 commits August 6, 2026 05:59
* feat(llmobs): accept image_parts on messages

Adds image support to the LLM Observability SDK, mirroring audio_parts. A
message may carry imageParts, each `{mimeType, content | attachmentKey}`, which
the tagger validates and emits as the snake_case wire shape `image_parts:
[{mime_type, content | attachment_key}]` — the same shape dd-trace-py emits and
the backend already types.

formatAudioPart and formatImagePart share one builder, since audio and image
parts have an identical wire shape and the linter rejects the duplicate.

Manual annotation only; provider auto-capture is a follow-up.

* feat(llmobs): mirror image part types to v5 and tighten ImagePart

Address review feedback on the public typing surface.

index.d.v5.ts now declares Message.imageParts and ImagePart. AGENTS.md
requires a new public type in both files unless the API is v6-only, and
this one is not: the runtime backports and audioParts already ships in
v5. No tsconfig references index.d.v5.ts, so it was verified by compiling
that surface standalone and resolving llmobs.ImagePart against it.

ImagePart becomes an exclusive union carrying exactly one of content or
attachmentKey, using the "?: never" shape already used by
AssistantTextMessage and AssistantToolCallMessage in the same file.
docs/test.ts pins all four cases, two valid and two behind
ts-expect-error. Those assertions are load-bearing: reverting the type to
all-optional fields fails type:doc:test with TS2578 twice.

The union is enforced on a directly annotated ImagePart but not on an
inline literal passed to annotate(), since inputData and outputData
include a "{ [key: string]: any }" arm that disables excess-property
checking. Narrowing that affects every annotate() shape and is left out.

Tests: the image non-string-content case now asserts the
invalid_io_messages telemetry tag that its audio counterpart already
asserted, closing a hole where deleting the tag argument kept the suite
green. An SDK-level image test mirrors the audio one, and three image
test names are aligned to the audio wording.
## Summary

The file-limit boundary test spends most of its runtime opening and deleting 10,000 real files, which can exceed Mocha's 30-second timeout on Windows.

## Why

The limit still needs the last accepted and first rejected case, so only the filesystem backend is replaced while all 10,001 production sink calls remain.
…ontext (#9575)

A batch that mixes instrumented and uninstrumented messages attributed the ones
without a context to the previous message's producer, so DSM reported edges no
producer ever wrote.

1. `setDataStreamsContext` ignored a falsy context and left the previous
   message's pathway active; it now clears.
2. The SQS and Kinesis consumers skipped the decode for a message without a
   carrier, so nothing cleared the pathway.
3. `DsmPathwayCodec.decode` read the carrier through `pick` before its own null
   check and threw for a context-free message under `DD_TRACE_DEBUG`.
The native producer wrapper only forwarded the seventh-argument headers it
recognized to the diagnostic-channel message, so trace injection replaced the
caller's entire native header list instead of the fields propagation actually
wrote, dropping application headers, ordering, repeats, and casing.

1. `Producer.produce()` now merges only the exact propagation fields into the
   caller's native header list, keeping every other entry, its order, and its
   repeats untouched.
2. KafkaJS maps and native consumers expose repeated wire headers differently
   (arrays vs. one-key records per repeat), so header conversion and DSM
   payload sizing now walk both shapes the same way and count wire records
   instead of array indices.
3. Repeated propagation fields (baggage, tracestate, DSM pathway context, …)
   now go through one field-owned read/write policy in `carrier.js` instead of
   raw carrier access per call site, so list fields combine, singleton fields
   resolve to the last usable value, and `traceparent` rejects repeats per
   the W3C Trace Context spec. An ESLint rule enforces that call sites use
   this policy instead of reaching into carriers directly.

Refs: #9588
Refs: https://www.rfc-editor.org/rfc/rfc7230#section-3.2.2
Refs: https://www.w3.org/TR/trace-context/#tracestate-header-field-values
Add DD_TRACE_HTTP_SERVER_ERROR_STATUSES with DD_HTTP_SERVER_ERROR_STATUSES as its fallback alias and compile valid 100-599 ranges once in shared web configuration. Next.js now uses the same matcher as the other web plugins.

Server spans hardcoded 5xx responses, so Node.js ignored the cross-tracer HTTP server error-status configuration. The existing validateStatus callback remains the programmatic override.

- Run config and web utility unit tests.
- Run the full HTTP server plugin test file.
- Run the targeted Next.js 16 integration test.
- Run changed-line coverage, generated config verification, and the full lint suite.

Fixes: #7060
* feat(mysql,mysql2): trace pool connection acquisition

An explicit pool.getConnection() held for a transaction hid any time spent
waiting for a busy pool, and a pooled query never surfaced its acquire wait.
Each explicit acquire now opens a dedicated acquire span (mysql.pool.acquire /
mysql2.pool.acquire) carrying a pool.wait_time metric and recording connection
errors; the acquire that pool.query() / execute() runs internally reports its
wait as a tag on the query span instead, so a given acquire is counted once.

Refs: #1613

* fix(mysql2): preserve pool-query acquire across cluster failover retries

A pool cluster namespace retries `getConnection` on the next node when the
first acquire fails, and with `canRetry` (the default) that retry is dispatched
from the first acquire's asynchronous failure callback — after
`wrapPoolQueryMethod` has already cleared the synchronous pool-query flag. The
failover acquire was therefore treated as an explicit user acquire, opening a
standalone `mysql2.pool.acquire` span and dropping the `pool.wait_time` tag from
the successful query span. The namespace `getConnection` now re-asserts the flag
for acquires that belong to a pool query, recognising retries by their reused
callback.

* fix(mysql): fold pool-cluster query acquire into the query span

A `mysql` pool cluster's `PoolNamespace#query` acquires its connection
internally, but that acquire was not bracketed with the pool-query flag, so it
opened a standalone `mysql.pool.acquire` span and dropped the `pool.wait_time`
tag from the query span — unlike the regular `pool.query` path. Bracketing
`PoolNamespace#query` folds the wait into the query span; a `canRetry` failover
retries by re-invoking `query`, so the same bracket also covers the node it
fails over to.

* ci: exercise the mysql instrumentation spec

The new mysql instrumentation spec under packages/datadog-instrumentations/test
only runs when a workflow sets PLUGINS=mysql for test:instrumentations; no job
did, so verify-exercised-tests fails and the spec would never run in CI. The new
job mirrors instrumentation-mysql2's service container and pinned image SHA.

* fix(mysql,mysql2,pg): preserve pool acquire classification

Pool cluster retries and connection callbacks can cross an async boundary, causing an internal query acquire to be reported as explicit and dropping its pool wait time. Stable query or callback identity preserves that classification. Synchronous implementations keep the existing fast path.

The synchronous wait transfer measured 29.65-29.74 ns/op with WeakMap storage and 8.38-8.39 ns/op with the stack handoff on Node.js 24.18.0.

* refactor(mysql): reduce pool acquire instrumentation churn

## Summary

- fold pool query classification into the existing mysql and mysql2 wrappers
- consolidate shared pool acquire control flow and equivalent contract tests
- retain pg on the same synchronous fast path

## Why

The implementation carried duplicate wrappers and test setup that obscured the hot-path invariants. This keeps subscriber-off forwarding and synchronous wait handoff allocation-free while preserving deferred dispatch and cluster retry isolation.

## Test plan

- npm run lint
- run the pool acquire helper, mysql, mysql2, and pg instrumentation suites
- run the mysql and mysql2 plugin suites
- verify changed-line and branch coverage against origin/master

* fix(mysql,mysql2,pg): trace terminal pool acquisition failures

Pooled queries suppress the explicit acquire lifecycle because their wait normally moves to the query span. A connection failure creates no query span, which dropped both the wait and error.

Emit a backdated acquire lifecycle only for the terminal failure. Pool-cluster retries retain classification until the final callback, and synchronous mysql2 stream construction finishes the explicit acquire before rethrowing.

* fix(mysql,mysql2): finish pool acquire spans through plugin lifecycle

## Summary

Use the context-backed outbound lifecycle for explicit MySQL and MySQL2 pool-acquisition spans.

## Why

Direct span completion bypassed peer-service computation, mapping, and serverless overrides. It also kept a second span lifecycle beside the PostgreSQL path.

## Drive-by

Align pool-helper JSDoc and the MySQL instrumentation checkout action with current master.

## Test plan

- PLUGINS=mysql|mysql2|pg npm run test:plugins
- full changed-line coverage against origin/master
- npm run lint
Bumps the testing-and-build group with 1 update in the /packages/dd-trace/test/plugins/versions directory: [mocha](https://github.com/mochajs/mocha).


Updates `mocha` from 11.7.6 to 11.8.0
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/v11.8.0/CHANGELOG.md)
- [Commits](mochajs/mocha@v11.7.6...v11.8.0)

---
updated-dependencies:
- dependency-name: mocha
  dependency-version: 11.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testing-and-build
...

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 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Overall package size

Self size: 7.92 MB
Deduped: 8.58 MB
No deduping: 8.58 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.3.3 | 125.43 kB | 441.68 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | dc-polyfill | 0.1.11 | 25.74 kB | 25.74 kB |

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

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Aug 6, 2026

Copy link
Copy Markdown

Pipelines  Tests

⚠️ Warnings

🚦 1 Pipeline job failed

DataDog/apm-reliability/dd-trace-js | create-multiarch-lib-injection-image   View in Datadog   GitLab

ℹ️ Info

No other issues found (see more)

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
Patch Coverage: 99.32%
Overall Coverage: 98.49%

Useful? React with 👍 / 👎

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

@codecov

codecov Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 99.32004% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 98.48%. Comparing base (6b35e7d) to head (985270a).
⚠️ Report is 2040 commits behind head on v5.x.

Files with missing lines Patch % Lines
...datadog-plugin-google-cloud-pubsub/src/producer.js 70.96% 9 Missing ⚠️
...ckages/datadog-instrumentations/src/vitest-main.js 96.38% 6 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##             v5.x    #9712       +/-   ##
===========================================
+ Coverage   83.19%   98.48%   +15.29%     
===========================================
  Files         476      965      +489     
  Lines       20153   137570   +117417     
  Branches        0    11716    +11716     
===========================================
+ Hits        16766   135489   +118723     
+ Misses       3387     2081     -1306     
Flag Coverage Δ
aiguard 56.92% <52.50%> (?)
aiguard-integration 55.79% <60.62%> (?)
apm-bucket-0 58.09% <52.50%> (?)
apm-bucket-1 63.38% <75.86%> (?)
apm-bucket-2 62.20% <75.86%> (?)
apm-bucket-3 59.76% <68.96%> (?)
apm-capabilities-tracing 62.72% <77.58%> (?)
apm-integrations-aerospike 56.22% <52.50%> (?)
apm-integrations-confluentinc-kafka-javascript 61.14% <80.04%> (?)
apm-integrations-couchbase 56.64% <52.50%> (?)
apm-integrations-http 62.19% <76.33%> (?)
apm-integrations-kafkajs 61.70% <77.11%> (?)
apm-integrations-next 59.36% <71.83%> (?)
apm-integrations-prisma 58.47% <60.23%> (?)
appsec 71.98% <75.86%> (?)
appsec-express_fastify_graphql 69.20% <59.60%> (?)
appsec-integration 50.18% <45.98%> (?)
appsec-kafka_ldapjs_lodash 63.41% <76.33%> (?)
appsec-mongodb-core_mongoose_mysql 67.13% <76.56%> (?)
appsec-next 56.78% <69.01%> (?)
appsec-node-serialize_passport_postgres 66.53% <68.06%> (?)
appsec-sourcing_stripe_template 65.03% <75.86%> (?)
debugger 64.27% <69.93%> (?)
instrumentations-bucket-0 51.58% <52.50%> (?)
instrumentations-bucket-1 59.39% <73.56%> (?)
instrumentations-bucket-10 61.05% <68.96%> (?)
instrumentations-bucket-11 61.79% <65.89%> (?)
instrumentations-bucket-12 51.59% <52.50%> (?)
instrumentations-bucket-13 52.36% <58.93%> (?)
instrumentations-bucket-14 51.54% <52.50%> (?)
instrumentations-bucket-2 53.07% <58.93%> (?)
instrumentations-bucket-3 53.41% <58.93%> (?)
instrumentations-bucket-4 58.73% <68.96%> (?)
instrumentations-bucket-5 50.06% <58.93%> (?)
instrumentations-bucket-6 60.47% <75.70%> (?)
instrumentations-bucket-7 58.05% <68.96%> (?)
instrumentations-bucket-8 59.07% <76.13%> (?)
instrumentations-bucket-9 57.38% <73.22%> (?)
instrumentations-instrumentation-couchbase 50.86% <52.77%> (?)
instrumentations-integration-esbuild 34.33% <43.32%> (?)
llmobs-ai_anthropic_bedrock 62.80% <63.97%> (?)
llmobs-bucket-1 61.30% <63.93%> (?)
llmobs-openai 61.78% <64.23%> (?)
llmobs-openai-agents_vertex-ai 59.78% <60.18%> (?)
llmobs-sdk 66.55% <78.78%> (?)
openfeature 55.58% <60.62%> (?)
openfeature-unit 53.13% <52.77%> (?)
platform-core_esbuild_instrumentations-misc 41.21% <63.72%> (?)
platform-integration 60.42% <66.50%> (?)
platform-shimmer_unit-guardrails_webpack 38.79% <42.08%> (?)
plugins-bucket-0 56.86% <66.00%> (?)
plugins-bucket-1 53.93% <60.13%> (?)
plugins-bucket-11 61.89% <75.78%> (?)
plugins-bucket-18 61.47% <80.73%> (?)
plugins-bucket-19 59.69% <71.78%> (?)
plugins-bucket-20 61.64% <68.96%> (?)
plugins-bucket-4 58.29% <68.96%> (?)
plugins-bullmq_cassandra_cookie 61.36% <80.73%> (?)
plugins-cookie-parser_crypto_dd-trace-api 56.28% <52.50%> (?)
plugins-fetch_fs_generic-pool 58.24% <63.00%> (?)
plugins-google-cloud-pubsub_grpc_handlebars 64.16% <80.44%> (?)
plugins-hapi_hono_ioredis 59.87% <71.78%> (?)
plugins-jest_knex_langgraph 55.29% <52.50%> (?)
plugins-ldapjs_light-my-request_limitd-client 58.22% <68.96%> (?)
plugins-lodash_mariadb_memcached 57.56% <51.55%> (?)
plugins-moleculer_mongodb_mongodb-core 61.43% <75.86%> (?)
plugins-mongoose_multer_mysql 59.19% <75.53%> (?)
plugins-mysql2_nats_node-serialize 60.88% <82.00%> (?)
plugins-opensearch_passport-http_pino 59.08% <63.00%> (?)
plugins-postgres_process_pug 58.21% <59.68%> (?)
plugins-redis_router_sequelize 61.52% <75.70%> (?)
plugins-test-and-upstream-rhea_undici_url 61.09% <80.73%> (?)
plugins-valkey_vm_winston 57.62% <58.93%> (?)
plugins-ws 59.22% <75.93%> (?)
profiling 61.54% <69.93%> (?)
serverless-aws-sdk-aws-sdk 54.91% <62.87%> (?)
serverless-aws-sdk-base-inject-field 50.81% <52.77%> (?)
serverless-aws-sdk-bedrockruntime 54.57% <58.65%> (?)
serverless-aws-sdk-client 56.15% <63.41%> (?)
serverless-aws-sdk-dynamodb 55.42% <58.65%> (?)
serverless-aws-sdk-eventbridge 49.47% <61.92%> (?)
serverless-aws-sdk-kinesis 59.04% <80.67%> (?)
serverless-aws-sdk-lambda 57.18% <75.35%> (?)
serverless-aws-sdk-s3 55.51% <58.65%> (?)
serverless-aws-sdk-serverless-peer-service 59.30% <63.80%> (?)
serverless-aws-sdk-sns 59.85% <80.52%> (?)
serverless-aws-sdk-sqs 60.27% <80.67%> (?)
serverless-aws-sdk-stepfunctions 55.34% <62.71%> (?)
serverless-aws-sdk-util 51.34% <52.77%> (?)
serverless-bucket-0 53.97% <63.88%> (?)
serverless-bucket-1 58.81% <63.32%> (?)
test-optimization-cucumber 71.52% <77.45%> (?)
test-optimization-cypress 64.94% <65.03%> (?)
test-optimization-jest 72.81% <77.54%> (?)
test-optimization-mocha 72.56% <77.45%> (?)
test-optimization-playwright-playwright-atr 60.03% <63.07%> (?)
test-optimization-playwright-playwright-efd 60.29% <63.07%> (?)
test-optimization-playwright-playwright-final-status 60.39% <63.07%> (?)
test-optimization-playwright-playwright-impacted-tests 59.92% <63.07%> (?)
test-optimization-playwright-playwright-reporting 61.20% <63.07%> (?)
test-optimization-playwright-playwright-test-management 60.91% <65.03%> (?)
test-optimization-playwright-playwright-test-span 60.11% <63.07%> (?)
test-optimization-selenium 59.46% <64.94%> (?)
test-optimization-testopt 57.89% <56.23%> (?)
test-optimization-vitest 73.88% <88.41%> (?)
test-optimization-vitest-browser 59.23% <66.66%> (?)
test-optimization-webdriverio 64.82% <64.33%> (?)

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.

@pr-commenter

pr-commenter Bot commented Aug 6, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-08-06 14:49:34

Comparing candidate commit 985270a in PR branch v5.121.0-proposal with baseline commit 570e8ae in branch v5.x.

📊 Benchmarking dashboard

Found 0 performance improvements and 0 performance regressions! Performance is the same for 2319 metrics, 39 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 ----------------------------------'

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-20

  • unstable execution_time [-226.920ms; +247.197ms] or [-6.016%; +6.553%]

scenario:appsec-appsec-enabled-24

  • unstable execution_time [-207.714ms; +218.107ms] or [-7.735%; +8.122%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-232571.685µs; +231234.818µs] or [-9.004%; +8.952%]

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

  • unstable execution_time [-151.343ms; +166.904ms] or [-4.867%; +5.368%]

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

  • unstable execution_time [-185118.077µs; +185190.077µs] or [-6.311%; +6.314%]

scenario:appsec-control-20

  • unstable execution_time [-163.446ms; +212.670ms] or [-9.041%; +11.764%]

scenario:appsec-control-24

  • unstable execution_time [-111.822ms; +114.925ms] or [-8.949%; +9.197%]

scenario:appsec-control-26

  • unstable execution_time [-128.134ms; +134.952ms] or [-10.223%; +10.767%]

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

  • unstable cpu_user_time [-2275.513ms; +532.333ms] or [-25.604%; +5.990%]
  • unstable execution_time [-2289.072ms; +547.118ms] or [-23.810%; +5.691%]
  • unstable instructions [-19.7G instructions; +4.5G instructions] or [-27.127%; +6.228%]
  • unstable throughput [-113.741op/s; +570.274op/s] or [-3.301%; +16.552%]

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

  • unstable cpu_user_time [-3618.207ms; +3658.077ms] or [-35.160%; +35.547%]
  • unstable execution_time [-3621.940ms; +3632.740ms] or [-32.831%; +32.929%]
  • unstable instructions [-32432.0M instructions; +32425.4M instructions] or [-37.619%; +37.612%]
  • unstable max_rss_usage [-10598.970KB; +11442.970KB] or [-6.517%; +7.036%]
  • unstable throughput [-713.204op/s; +713.175op/s] or [-23.183%; +23.182%]

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

  • unstable cpu_user_time [-494.112ms; +369.858ms] or [-6.049%; +4.528%]
  • unstable execution_time [-540.131ms; +400.163ms] or [-6.070%; +4.497%]
  • unstable instructions [-4006.5M instructions; +2764.1M instructions] or [-5.999%; +4.139%]
  • unstable throughput [-167.175op/s; +227.309op/s] or [-4.628%; +6.293%]

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

  • unstable cpu_user_time [-2276.690ms; +778.928ms] or [-23.881%; +8.171%]
  • unstable execution_time [-2293.129ms; +796.419ms] or [-22.319%; +7.751%]
  • unstable instructions [-20.3G instructions; +6.7G instructions] or [-25.547%; +8.439%]
  • unstable throughput [-166.669op/s; +447.409op/s] or [-5.163%; +13.860%]

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

  • unstable cpu_user_time [-1631.787ms; +514.204ms] or [-19.802%; +6.240%]
  • unstable execution_time [-1630.784ms; +535.745ms] or [-18.239%; +5.992%]
  • unstable instructions [-13.8G instructions; +4.4G instructions] or [-20.566%; +6.617%]
  • unstable throughput [-152.168op/s; +454.968op/s] or [-4.143%; +12.389%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-294.556ms; +442.775ms] or [-6.126%; +9.209%]
  • unstable execution_time [-299.140ms; +442.125ms] or [-6.123%; +9.050%]
  • unstable throughput [-150523.591op/s; +103159.945op/s] or [-8.752%; +5.998%]

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

  • unstable max_rss_usage [-20.873MB; +44.306MB] or [-5.210%; +11.058%]

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

  • unstable max_rss_usage [-5.615MB; +7.996MB] or [-4.372%; +6.226%]

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

  • unstable max_rss_usage [-26.154MB; +15.958MB] or [-11.677%; +7.125%]

scenario:plugin-pg-service-26

  • unstable cpu_usage_percentage [-10.241%; +8.798%]
  • unstable execution_time [-140.373ms; +164.910ms] or [-14.979%; +17.597%]
  • unstable throughput [-714658.747op/s; +649964.011op/s] or [-10.839%; +9.858%]

scenario:test-optimization-large-suite-20

  • unstable max_rss_usage [-6.542MB; +2.584MB] or [-8.152%; +3.220%]

@dd-octo-sts
dd-octo-sts Bot force-pushed the v5.121.0-proposal branch from 938bf91 to 985270a Compare August 6, 2026 14:37
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.

4 participants