Skip to content

test(kafkajs): stop pinning the produce offset in the sendBatch test#9074

Merged
BridgeAR merged 1 commit into
masterfrom
BridgeAR/2026-06-26-flaky-kafkajs-oldest
Jun 26, 2026
Merged

test(kafkajs): stop pinning the produce offset in the sendBatch test#9074
BridgeAR merged 1 commit into
masterfrom
BridgeAR/2026-06-26-flaky-kafkajs-oldest

Conversation

@BridgeAR

Copy link
Copy Markdown
Member

Summary

Fixes a flake in Plugin > kafkajs > producer (sendBatch) > should emit one kafka.produce span per topicMessages entry (surfaced on the kafkajs (oldest) job).

The 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. The span correctly reports the broker's real offset (CI observed "1"), so the per-topic assertSomeTraces never matched and timed out. The hard-coded 0 was the only defect — the expected offsets are now read back from the sendBatch result, so the assertion tracks the broker while still pinning per-topic isolation, the property the test exists for. That isolation is also covered deterministically (including non-zero offsets) by commit.spec.js.

A second, independent fragility: each topicMessages entry is its own root span, so the two spans are separate traces the agent may deliver in one payload in any order. The lookup now scans every trace instead of only traces[0].

Test plan

  • kafkajs plugin CI matrix (PLUGINS=kafkajs SERVICES=kafka) green across the supported kafkajs versions.

Local: commit.spec.js passes and eslint is clean; the integration suite needs a live Kafka broker, unavailable in this environment.

Refs: #8403

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].
@dd-octo-sts

dd-octo-sts Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 6.35 MB
Deduped: 7.41 MB
No deduping: 7.41 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

@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 54.92%. Comparing base (1a79e10) to head (0dde63c).
⚠️ Report is 5 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff             @@
##           master    #9074       +/-   ##
===========================================
- Coverage   92.86%   54.92%   -37.95%     
===========================================
  Files         885      642      -243     
  Lines       50756    38529    -12227     
  Branches    10012     5160     -4852     
===========================================
- Hits        47134    21161    -25973     
- Misses       3622    17368    +13746     
Flag Coverage Δ
aiguard-integration-active 41.73% <ø> (-0.01%) ⬇️
aiguard-integration-latest ?
aiguard-integration-maintenance ?
aiguard-macos 34.57% <ø> (-0.08%) ⬇️
aiguard-ubuntu ?
aiguard-windows ?
apm-capabilities-tracing-ubuntu-active ?
apm-capabilities-tracing-ubuntu-latest ?
apm-capabilities-tracing-ubuntu-oldest ?
apm-capabilities-tracing-windows ?
apm-integrations-aerospike-18-gte.5.2.0 ?
apm-integrations-aerospike-20-gte.5.5.0 33.11% <ø> (-0.08%) ⬇️
apm-integrations-aerospike-22-gte.5.12.1 33.12% <ø> (-0.08%) ⬇️
apm-integrations-aerospike-22-gte.6.0.0 ?
apm-integrations-aerospike-eol- 42.45% <ø> (ø)
apm-integrations-child-process ?
apm-integrations-confluentinc-kafka-javascript-18 ?
apm-integrations-confluentinc-kafka-javascript-20 ?
apm-integrations-confluentinc-kafka-javascript-22 ?
apm-integrations-confluentinc-kafka-javascript-24 39.94% <ø> (-0.08%) ⬇️
apm-integrations-couchbase-eol ?
apm-integrations-couchbase-oldest ?
apm-integrations-dns ?
apm-integrations-elasticsearch 34.15% <ø> (-0.07%) ⬇️
apm-integrations-http-latest ?
apm-integrations-http-maintenance ?
apm-integrations-http-oldest 41.98% <ø> (-0.07%) ⬇️
apm-integrations-http2 ?
apm-integrations-kafkajs-latest ?
apm-integrations-net ?
apm-integrations-next-11.1.4 36.34% <ø> (ø)
apm-integrations-next-12.3.7 36.34% <ø> (ø)
apm-integrations-next-13.0.0 ?
apm-integrations-next-13.2.0 ?
apm-integrations-next-13.5.11 ?
apm-integrations-next-14.0.0 ?
apm-integrations-next-14.2.35 ?
apm-integrations-next-14.2.6 ?
apm-integrations-next-14.2.7 ?
apm-integrations-next-15.0.0 ?
apm-integrations-next-15.4.0 ?
apm-integrations-next-latest ?
apm-integrations-oracledb ?
apm-integrations-prisma-18-gte.6.16.0.and.lt.7.0.0 ?
apm-integrations-prisma-latest-all ?
apm-integrations-restify ?
apm-integrations-sharedb 32.55% <ø> (-0.08%) ⬇️
apm-integrations-tedious ?
appsec-express ?
appsec-fastify ?
appsec-graphql ?
appsec-integration-active ?
appsec-integration-latest ?
appsec-integration-maintenance ?
appsec-integration-oldest ?
appsec-kafka 40.28% <ø> (-0.07%) ⬇️
appsec-ldapjs 39.80% <ø> (-0.07%) ⬇️
appsec-lodash 39.72% <ø> (-0.07%) ⬇️
appsec-macos ?
appsec-mongodb-core ?
appsec-mongoose ?
appsec-mysql ?
appsec-next-latest-11.1.4 27.40% <ø> (-0.07%) ⬇️
appsec-next-latest-12.3.7 27.43% <ø> (ø)
appsec-next-latest-13.0.0 29.18% <ø> (-0.08%) ⬇️
appsec-next-latest-13.2.0 ?
appsec-next-latest-13.5.11 ?
appsec-next-latest-14.0.0 ?
appsec-next-latest-14.2.35 ?
appsec-next-latest-14.2.6 ?
appsec-next-latest-14.2.7 ?
appsec-next-latest-15.0.0 ?
appsec-next-latest-latest ?
appsec-next-oldest-11.1.4 ?
appsec-next-oldest-12.3.7 ?
appsec-next-oldest-13.0.0 ?
appsec-next-oldest-13.2.0 ?
appsec-next-oldest-13.5.11 ?
appsec-next-oldest-14.0.0 ?
appsec-next-oldest-14.2.35 ?
appsec-next-oldest-14.2.6 ?
appsec-next-oldest-14.2.7 ?
appsec-next-oldest-15.0.0 ?
appsec-next-oldest-latest 27.62% <ø> (ø)
appsec-node-serialize 39.01% <ø> (-0.07%) ⬇️
appsec-passport 42.65% <ø> (-0.07%) ⬇️
appsec-sourcing ?
appsec-stripe ?
appsec-template 39.30% <ø> (-0.07%) ⬇️
appsec-ubuntu ?
appsec-windows ?
debugger-ubuntu-active ?
debugger-ubuntu-latest ?
debugger-ubuntu-oldest ?
instrumentations-instrumentation-ai 45.57% <ø> (ø)
instrumentations-instrumentation-aws-sdk 45.14% <ø> (ø)
instrumentations-instrumentation-bluebird 27.62% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-body-parser 35.65% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-child_process 33.32% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-connect 48.55% <ø> (ø)
instrumentations-instrumentation-cookie-parser 29.53% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-couchbase-18 46.27% <ø> (ø)
instrumentations-instrumentation-couchbase-eol ?
instrumentations-instrumentation-crypto 27.58% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-express ?
instrumentations-instrumentation-express-mongo-sanitize 29.63% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-express-multi-version 41.85% <ø> (ø)
instrumentations-instrumentation-express-session 35.48% <ø> (?)
instrumentations-instrumentation-fastify 48.50% <ø> (?)
instrumentations-instrumentation-fetch 45.26% <ø> (ø)
instrumentations-instrumentation-fs 27.30% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-generic-pool 27.49% <ø> (ø)
instrumentations-instrumentation-hono 28.83% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-http 37.92% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-http-client-options 37.52% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-kafkajs 49.23% <ø> (ø)
instrumentations-instrumentation-knex ?
instrumentations-instrumentation-koa 46.15% <ø> (ø)
instrumentations-instrumentation-light-my-request 35.29% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-mongoose ?
instrumentations-instrumentation-multer 35.33% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-mysql2 33.44% <ø> (?)
instrumentations-instrumentation-openai-lifecycle 46.25% <ø> (ø)
instrumentations-instrumentation-otel-sdk-trace 25.47% <ø> (ø)
instrumentations-instrumentation-passport 39.27% <ø> (-0.07%) ⬇️
instrumentations-instrumentation-passport-http 38.97% <ø> (-0.07%) ⬇️
instrumentations-instrumentation-passport-local 39.41% <ø> (-0.07%) ⬇️
instrumentations-instrumentation-pg 33.17% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-promise 27.56% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-promise-js 27.56% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-q 27.59% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-restify 47.79% <ø> (ø)
instrumentations-instrumentation-router 43.74% <ø> (ø)
instrumentations-instrumentation-stripe ?
instrumentations-instrumentation-url 27.42% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-when 27.58% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-zlib 27.47% <ø> (-0.08%) ⬇️
instrumentations-integration-esbuild-0.16.12-active ?
instrumentations-integration-esbuild-0.16.12-latest ?
instrumentations-integration-esbuild-0.16.12-maintenance ?
instrumentations-integration-esbuild-0.16.12-oldest ?
instrumentations-integration-esbuild-latest-active ?
instrumentations-integration-esbuild-latest-latest ?
instrumentations-integration-esbuild-latest-maintenance ?
instrumentations-integration-esbuild-latest-oldest ?
llmobs-ai ?
llmobs-anthropic ?
llmobs-bedrock ?
llmobs-google-genai ?
llmobs-langchain ?
llmobs-openai-oldest ?
llmobs-sdk-active ?
llmobs-sdk-latest ?
llmobs-sdk-maintenance ?
llmobs-sdk-oldest ?
llmobs-vertex-ai ?
master-coverage 54.92% <ø> (?)
openfeature-macos 37.49% <ø> (ø)
openfeature-ubuntu ?
openfeature-unit-active 50.02% <ø> (ø)
openfeature-unit-latest 50.02% <ø> (ø)
openfeature-unit-maintenance 50.38% <ø> (ø)
openfeature-unit-oldest 50.38% <ø> (ø)
openfeature-windows ?
platform-core 46.52% <ø> (ø)
platform-esbuild 18.67% <ø> (ø)
platform-instrumentations-misc ?
platform-integration-active ?
platform-integration-latest ?
platform-integration-maintenance ?
platform-integration-oldest ?
platform-shimmer 47.54% <ø> (ø)
platform-unit-guardrails 45.39% <ø> (ø)
platform-webpack 18.32% <ø> (ø)
plugins-aws-durable-execution-sdk-js ?
plugins-axios ?
plugins-azure-event-hubs ?
plugins-azure-service-bus ?
plugins-body-parser ?
plugins-cassandra 33.58% <ø> (-0.08%) ⬇️
plugins-cookie 40.76% <ø> (ø)
plugins-cookie-parser 40.59% <ø> (ø)
plugins-crypto 42.76% <ø> (ø)
plugins-dd-trace-api 33.17% <ø> (-0.08%) ⬇️
plugins-express-mongo-sanitize 40.64% <ø> (ø)
plugins-express-session 40.50% <ø> (ø)
plugins-fastify ?
plugins-fetch 34.52% <ø> (-0.08%) ⬇️
plugins-fs 33.60% <ø> (-0.08%) ⬇️
plugins-generic-pool 40.07% <ø> (ø)
plugins-google-cloud-pubsub ?
plugins-grpc ?
plugins-handlebars 40.64% <ø> (ø)
plugins-hapi ?
plugins-hono 35.87% <ø> (-0.08%) ⬇️
plugins-ioredis ?
plugins-jest ?
plugins-knex ?
plugins-langgraph 32.31% <ø> (-0.08%) ⬇️
plugins-ldapjs 39.06% <ø> (ø)
plugins-light-my-request 40.20% <ø> (ø)
plugins-limitd-client ?
plugins-lodash 40.25% <ø> (ø)
plugins-mariadb ?
plugins-memcached ?
plugins-microgateway-core 34.71% <ø> (-0.08%) ⬇️
plugins-modelcontextprotocol-sdk 32.26% <ø> (-0.08%) ⬇️
plugins-moleculer ?
plugins-mongodb ?
plugins-mongodb-core ?
plugins-mongoose ?
plugins-multer 40.56% <ø> (ø)
plugins-mysql 34.42% <ø> (-0.22%) ⬇️
plugins-mysql2 ?
plugins-nats 36.25% <ø> (-0.08%) ⬇️
plugins-node-serialize 40.48% <ø> (ø)
plugins-opensearch ?
plugins-passport-http 40.37% <ø> (ø)
plugins-pino ?
plugins-postgres ?
plugins-process 42.76% <ø> (ø)
plugins-pug 40.76% <ø> (ø)
plugins-redis 34.20% <ø> (-0.14%) ⬇️
plugins-router 38.00% <ø> (-0.23%) ⬇️
plugins-sequelize ?
plugins-test-and-upstream-amqp10 ?
plugins-test-and-upstream-amqplib ?
plugins-test-and-upstream-apollo ?
plugins-test-and-upstream-avsc 33.66% <ø> (-0.08%) ⬇️
plugins-test-and-upstream-bunyan ?
plugins-test-and-upstream-connect ?
plugins-test-and-upstream-graphql ?
plugins-test-and-upstream-koa ?
plugins-test-and-upstream-protobufjs 33.89% <ø> (-0.08%) ⬇️
plugins-test-and-upstream-rhea ?
plugins-undici 34.96% <ø> (-0.07%) ⬇️
plugins-url 42.76% <ø> (ø)
plugins-valkey 33.58% <ø> (-0.22%) ⬇️
plugins-vm 42.76% <ø> (ø)
plugins-winston 29.71% <ø> (-0.08%) ⬇️
plugins-ws 37.02% <ø> (-0.08%) ⬇️
profiling-macos ?
profiling-ubuntu ?
profiling-windows ?
serverless-aws-sdk-latest-aws-sdk ?
serverless-aws-sdk-latest-bedrockruntime ?
serverless-aws-sdk-latest-client ?
serverless-aws-sdk-latest-dynamodb ?
serverless-aws-sdk-latest-eventbridge ?
serverless-aws-sdk-latest-kinesis ?
serverless-aws-sdk-latest-lambda ?
serverless-aws-sdk-latest-s3 ?
serverless-aws-sdk-latest-serverless-peer-service ?
serverless-aws-sdk-latest-sqs ?
serverless-aws-sdk-latest-stepfunctions ?
serverless-aws-sdk-latest-util ?
serverless-aws-sdk-oldest-aws-sdk ?
serverless-aws-sdk-oldest-bedrockruntime ?
serverless-aws-sdk-oldest-client ?
serverless-aws-sdk-oldest-dynamodb ?
serverless-aws-sdk-oldest-eventbridge ?
serverless-aws-sdk-oldest-kinesis ?
serverless-aws-sdk-oldest-lambda ?
serverless-aws-sdk-oldest-s3 ?
serverless-aws-sdk-oldest-sns ?
serverless-aws-sdk-oldest-sqs ?
serverless-aws-sdk-oldest-stepfunctions ?
serverless-aws-sdk-oldest-util ?
serverless-azure-durable-functions ?
serverless-azure-functions-eventhubs ?
serverless-azure-functions-servicebus ?
serverless-lambda 34.32% <ø> (-0.09%) ⬇️
test-optimization-cucumber-latest-7.0.0 ?
test-optimization-cucumber-latest-latest ?
test-optimization-cucumber-oldest-7.0.0 ?
test-optimization-cypress-latest-12.0.0-commonJS ?
test-optimization-cypress-latest-12.0.0-esm ?
test-optimization-cypress-latest-14.5.4-commonJS ?
test-optimization-cypress-latest-14.5.4-esm ?
test-optimization-cypress-latest-latest-commonJS ?
test-optimization-cypress-latest-latest-esm ?
test-optimization-cypress-oldest-12.0.0-commonJS ?
test-optimization-cypress-oldest-12.0.0-esm ?
test-optimization-cypress-oldest-14.5.4-commonJS ?
test-optimization-cypress-oldest-14.5.4-esm ?
test-optimization-jest-latest-latest ?
test-optimization-jest-latest-oldest ?
test-optimization-jest-oldest-latest ?
test-optimization-jest-oldest-oldest ?
test-optimization-mocha-latest-latest ?
test-optimization-mocha-latest-oldest ?
test-optimization-mocha-oldest-oldest ?
test-optimization-playwright-latest-latest-playwright-active-test-span ?
test-optimization-playwright-latest-latest-playwright-atr ?
test-optimization-playwright-latest-latest-playwright-efd ?
test-optimization-playwright-latest-latest-playwright-final-status ?
test-optimization-playwright-latest-latest-playwright-impacted-tests ?
test-optimization-playwright-latest-latest-playwright-reporting ?
test-optimization-playwright-latest-oldest-playwright-active-test-span ?
test-optimization-playwright-latest-oldest-playwright-atr ?
test-optimization-playwright-latest-oldest-playwright-efd ?
test-optimization-playwright-latest-oldest-playwright-final-status ?
test-optimization-playwright-latest-oldest-playwright-impacted-tests ?
test-optimization-playwright-latest-oldest-playwright-reporting ?
test-optimization-playwright-latest-oldest-playwright-test-management ?
test-optimization-playwright-oldest-latest-playwright-active-test-span ?
test-optimization-playwright-oldest-latest-playwright-atr ?
test-optimization-playwright-oldest-latest-playwright-efd ?
test-optimization-playwright-oldest-latest-playwright-reporting ?
test-optimization-playwright-oldest-oldest-playwright-active-test-span ?
test-optimization-playwright-oldest-oldest-playwright-atr ?
test-optimization-playwright-oldest-oldest-playwright-efd ?
test-optimization-playwright-oldest-oldest-playwright-final-status ?
test-optimization-playwright-oldest-oldest-playwright-impacted-tests ?
test-optimization-playwright-oldest-oldest-playwright-reporting ?
test-optimization-playwright-oldest-oldest-playwright-test-management ?
test-optimization-selenium-latest ?
test-optimization-selenium-oldest ?
test-optimization-testopt-latest ?
test-optimization-testopt-maintenance ?
test-optimization-testopt-oldest ?
test-optimization-vitest-latest ?
test-optimization-vitest-oldest 42.22% <ø> (-4.89%) ⬇️

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.

@datadog-prod-us1-5

datadog-prod-us1-5 Bot commented Jun 25, 2026

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

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

@pr-commenter

pr-commenter Bot commented Jun 25, 2026

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2026-06-25 23:21:15

Comparing candidate commit 0dde63c in PR branch BridgeAR/2026-06-26-flaky-kafkajs-oldest with baseline commit 1a79e10 in branch master.

📊 Benchmarking dashboard

Found 0 performance improvements and 0 performance regressions! Performance is the same for 2269 metrics, 14 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-24

  • unstable execution_time [-152983.100µs; +151028.267µs] or [-5.853%; +5.779%]

scenario:appsec-appsec-enabled-26

  • unstable execution_time [-167.279ms; +169.732ms] or [-6.762%; +6.861%]

scenario:appsec-control-20

  • unstable execution_time [-128.811ms; +109.884ms] or [-7.604%; +6.487%]

scenario:appsec-control-24

  • unstable execution_time [-76.875ms; +100.628ms] or [-6.463%; +8.461%]

scenario:appsec-control-26

  • unstable execution_time [-93.697ms; +96.808ms] or [-7.931%; +8.194%]

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

  • unstable max_rss_usage [-10.806MB; +16.259MB] or [-4.167%; +6.269%]

scenario:dogstatsd-with-tags-20

  • unstable cpu_user_time [-557.943ms; +79.563ms] or [-11.370%; +1.621%]
  • unstable execution_time [-559.069ms; +79.972ms] or [-11.220%; +1.605%]
  • unstable throughput [-27949.270op/s; +188679.047op/s] or [-1.658%; +11.196%]

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

  • unstable cpu_user_time [-437.419ms; +209.233ms] or [-9.629%; +4.606%]
  • unstable execution_time [-475.293ms; +227.512ms] or [-9.835%; +4.708%]
  • unstable max_rss_usage [-61.262MB; +23.766MB] or [-11.188%; +4.340%]
  • unstable throughput [-2.162op/s; +4.511op/s] or [-4.889%; +10.199%]

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

  • unstable max_rss_usage [-15.109MB; +7.650MB] or [-10.764%; +5.449%]

@BridgeAR
BridgeAR marked this pull request as ready for review June 26, 2026 13:43
@BridgeAR
BridgeAR requested a review from a team as a code owner June 26, 2026 13:43
@BridgeAR
BridgeAR requested review from wconti27 and removed request for a team June 26, 2026 13:43
@BridgeAR
BridgeAR merged commit 6245f29 into master Jun 26, 2026
806 checks passed
@BridgeAR
BridgeAR deleted the BridgeAR/2026-06-26-flaky-kafkajs-oldest branch June 26, 2026 21:01
This was referenced Jun 26, 2026
rochdev pushed a commit that referenced this pull request Jul 2, 2026
…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].
rochdev pushed a commit that referenced this pull request Jul 2, 2026
…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].
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants