Skip to content

[test optimization] Use duration buckets for playwright EFD retries#8289

Merged
juan-fernandez merged 1 commit into
masterfrom
juan-fernandez/efd-duration-retries-playwright
May 8, 2026
Merged

[test optimization] Use duration buckets for playwright EFD retries#8289
juan-fernandez merged 1 commit into
masterfrom
juan-fernandez/efd-duration-retries-playwright

Conversation

@juan-fernandez
Copy link
Copy Markdown
Collaborator

@juan-fernandez juan-fernandez commented May 6, 2026

What does this PR do?

Updates Playwright Early Flake Detection clone execution to use the slow_test_retries duration buckets returned by the settings API.

Propagates the retry thresholds to Playwright workers, and marks tests with test.early_flake.abort_reason=slow when the selected bucket aborts additional retries.

Motivation

Jest, Mocha, Cucumber, and Vitest already limit EFD retry attempts based on the duration of the first test execution. Playwright should apply the same API-driven retry bucket behavior so slow tests do not keep scheduling unnecessary EFD retries.

Additional Notes

Stack: 4/5. This is now the base PR for the remaining Cypress PR after #8288 merged.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 6, 2026

Codecov Report

❌ Patch coverage is 92.40000% with 19 lines in your changes missing coverage. Please review.
✅ Project coverage is 89.78%. Comparing base (d422180) to head (34cca90).
⚠️ Report is 17 commits behind head on master.

Files with missing lines Patch % Lines
...ackages/datadog-instrumentations/src/playwright.js 92.33% 19 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8289      +/-   ##
==========================================
+ Coverage   89.75%   89.78%   +0.03%     
==========================================
  Files         836      836              
  Lines       44481    44695     +214     
  Branches     8210     8266      +56     
==========================================
+ Hits        39925    40131     +206     
- Misses       4556     4564       +8     
Flag Coverage Δ
aiguard-integration-active 40.59% <ø> (-0.01%) ⬇️
aiguard-integration-latest 40.54% <ø> (-0.01%) ⬇️
aiguard-integration-maintenance 40.59% <ø> (-0.01%) ⬇️
aiguard-macos 35.28% <ø> (-0.09%) ⬇️
aiguard-ubuntu 35.38% <ø> (-0.09%) ⬇️
aiguard-windows 35.19% <ø> (-0.09%) ⬇️
apm-capabilities-tracing-macos 49.05% <0.00%> (+<0.01%) ⬆️
apm-capabilities-tracing-ubuntu-active 49.07% <0.00%> (-0.18%) ⬇️
apm-capabilities-tracing-ubuntu-latest 49.04% <0.00%> (+<0.01%) ⬆️
apm-capabilities-tracing-ubuntu-maintenance 49.25% <0.00%> (+<0.01%) ⬆️
apm-capabilities-tracing-ubuntu-oldest 49.24% <0.00%> (+<0.01%) ⬆️
apm-capabilities-tracing-windows 49.05% <0.00%> (+0.22%) ⬆️
apm-integrations-aerospike-18-gte.5.2.0 34.27% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-20-gte.5.5.0 34.28% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-22-gte.5.12.1 34.28% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-22-gte.6.0.0 34.28% <ø> (-0.09%) ⬇️
apm-integrations-aerospike-eol- 34.19% <ø> (-0.09%) ⬇️
apm-integrations-child-process 35.30% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-18 41.15% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-20 41.16% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-22 41.16% <ø> (-0.09%) ⬇️
apm-integrations-confluentinc-kafka-javascript-24 41.10% <ø> (-0.09%) ⬇️
apm-integrations-couchbase-18 34.46% <ø> (-0.09%) ⬇️
apm-integrations-couchbase-eol 34.56% <ø> (+0.13%) ⬆️
apm-integrations-dns 34.18% <ø> (-0.09%) ⬇️
apm-integrations-elasticsearch 34.93% <ø> (-0.09%) ⬇️
apm-integrations-http-latest 42.13% <ø> (-0.08%) ⬇️
apm-integrations-http-maintenance 42.19% <ø> (-0.08%) ⬇️
apm-integrations-http-oldest 42.20% <ø> (-0.08%) ⬇️
apm-integrations-http2 39.62% <ø> (+0.02%) ⬆️
apm-integrations-kafkajs-latest 41.06% <ø> (-0.07%) ⬇️
apm-integrations-kafkajs-oldest 41.09% <ø> (-0.09%) ⬇️
apm-integrations-net 34.87% <ø> (-0.09%) ⬇️
apm-integrations-next-11.1.4 29.34% <ø> (-0.06%) ⬇️
apm-integrations-next-13.2.0 30.76% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.10.2.0.and.lt.11 22.99% <ø> (ø)
apm-integrations-next-gte.11.0.0.and.lt.13 30.77% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.13.0.0.and.lt.14 31.01% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.14.0.0.and.lte.14.2.6 30.83% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.14.2.7.and.lt.15 30.83% <ø> (-0.09%) ⬇️
apm-integrations-next-gte.15.0.0 30.90% <ø> (-0.09%) ⬇️
apm-integrations-oracledb 34.57% <ø> (-0.09%) ⬇️
apm-integrations-prisma-18-gte.6.16.0.and.lt.7.0.0 34.91% <ø> (-0.09%) ⬇️
apm-integrations-prisma-latest-all 35.23% <ø> (-0.09%) ⬇️
apm-integrations-restify 36.37% <ø> (-0.09%) ⬇️
apm-integrations-sharedb 33.86% <ø> (-0.09%) ⬇️
apm-integrations-tedious 34.37% <ø> (-0.09%) ⬇️
appsec-express 51.98% <ø> (-0.05%) ⬇️
appsec-fastify 48.65% <ø> (-0.07%) ⬇️
appsec-graphql 48.95% <ø> (-0.06%) ⬇️
appsec-integration-active 37.02% <4.43%> (-0.24%) ⬇️
appsec-integration-latest 37.00% <4.43%> (-0.24%) ⬇️
appsec-integration-maintenance 37.02% <4.43%> (-0.24%) ⬇️
appsec-integration-oldest 37.01% <4.43%> (-0.24%) ⬇️
appsec-kafka 41.44% <ø> (-0.13%) ⬇️
appsec-ldapjs 40.70% <ø> (-0.08%) ⬇️
appsec-lodash 40.81% <ø> (-0.08%) ⬇️
appsec-macos 55.81% <ø> (-0.07%) ⬇️
appsec-mongodb-core 45.07% <ø> (-0.07%) ⬇️
appsec-mongoose 45.93% <ø> (-0.07%) ⬇️
appsec-mysql 47.97% <ø> (-0.07%) ⬇️
appsec-next-latest-11.1.4 29.44% <ø> (-0.08%) ⬇️
appsec-next-latest-13.2.0 30.90% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.10.2.0.and.lt.11 28.66% <ø> (ø)
appsec-next-latest-gte.11.0.0.and.lt.13 30.89% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.13.0.0.and.lt.14 31.13% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.14.0.0.and.lte.14.2.6 30.97% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.14.2.7.and.lt.15 30.97% <ø> (-0.09%) ⬇️
appsec-next-latest-gte.15.0.0 30.97% <ø> (-0.09%) ⬇️
appsec-next-oldest-11.1.4 29.44% <ø> (-0.09%) ⬇️
appsec-next-oldest-13.2.0 31.18% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.10.2.0.and.lt.11 28.78% <ø> (ø)
appsec-next-oldest-gte.11.0.0.and.lt.13 30.90% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.13.0.0.and.lt.14 31.37% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.14.0.0.and.lte.14.2.6 31.22% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.14.2.7.and.lt.15 31.22% <ø> (-0.09%) ⬇️
appsec-next-oldest-gte.15.0.0 31.22% <ø> (-0.09%) ⬇️
appsec-node-serialize 40.02% <ø> (-0.08%) ⬇️
appsec-passport 43.68% <ø> (-0.08%) ⬇️
appsec-postgres 47.56% <ø> (-0.07%) ⬇️
appsec-sourcing 39.36% <ø> (-0.08%) ⬇️
appsec-stripe 41.46% <ø> (-0.08%) ⬇️
appsec-template 40.18% <ø> (-0.08%) ⬇️
appsec-ubuntu 55.88% <ø> (-0.07%) ⬇️
appsec-windows 55.72% <ø> (-0.07%) ⬇️
debugger-ubuntu-active 43.23% <ø> (-0.01%) ⬇️
debugger-ubuntu-latest 43.18% <ø> (-0.01%) ⬇️
debugger-ubuntu-maintenance 43.68% <ø> (+0.42%) ⬆️
debugger-ubuntu-oldest 43.68% <ø> (-0.01%) ⬇️
instrumentations-instrumentation-bluebird 29.29% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-body-parser 36.91% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-child_process 34.79% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-cookie-parser 31.14% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-express 31.35% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-express-mongo-sanitize 31.25% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-express-session 36.60% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-fs 28.98% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-generic-pool 29.89% <ø> (+<0.01%) ⬆️
instrumentations-instrumentation-http 36.27% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-knex 29.27% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-light-my-request 36.53% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-mongoose 30.38% <ø> (+<0.01%) ⬆️
instrumentations-instrumentation-multer 36.70% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-mysql2 34.77% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-passport 40.32% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-passport-http 40.10% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-passport-local 40.58% <ø> (-0.08%) ⬇️
instrumentations-instrumentation-pg 34.32% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-promise 29.23% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-promise-js 29.24% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-q 29.27% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-url 29.24% <ø> (-0.09%) ⬇️
instrumentations-instrumentation-when 29.25% <ø> (-0.09%) ⬇️
instrumentations-integration-esbuild-active 19.36% <4.43%> (-0.16%) ⬇️
instrumentations-integration-esbuild-latest 19.34% <4.43%> (-0.16%) ⬇️
instrumentations-integration-esbuild-maintenance 19.36% <4.43%> (-0.16%) ⬇️
instrumentations-integration-esbuild-oldest 19.35% <4.43%> (-0.16%) ⬇️
llmobs-ai 37.74% <ø> (-0.08%) ⬇️
llmobs-anthropic 37.80% <ø> (-0.09%) ⬇️
llmobs-bedrock 36.50% <ø> (-0.10%) ⬇️
llmobs-google-genai 36.82% <ø> (-0.07%) ⬇️
llmobs-langchain 36.53% <ø> (-0.05%) ⬇️
llmobs-openai 40.57% <ø> (-0.07%) ⬇️
llmobs-sdk-active 45.39% <ø> (-0.06%) ⬇️
llmobs-sdk-latest 45.33% <ø> (-0.06%) ⬇️
llmobs-sdk-maintenance 45.39% <ø> (-0.06%) ⬇️
llmobs-sdk-oldest 45.38% <ø> (-0.06%) ⬇️
llmobs-vertex-ai 36.97% <ø> (-0.10%) ⬇️
openfeature-macos 37.96% <ø> (+<0.01%) ⬆️
openfeature-ubuntu 38.04% <ø> (+<0.01%) ⬆️
openfeature-unit-active 48.51% <ø> (+0.02%) ⬆️
openfeature-unit-latest 48.35% <ø> (+0.02%) ⬆️
openfeature-unit-maintenance 48.51% <ø> (+0.02%) ⬆️
openfeature-unit-oldest 48.51% <ø> (+0.02%) ⬆️
openfeature-windows 37.84% <ø> (+<0.01%) ⬆️
platform-core 37.27% <ø> (ø)
platform-esbuild 40.61% <ø> (ø)
platform-instrumentations-misc 30.73% <ø> (-0.01%) ⬇️
platform-integration-active 46.98% <ø> (-0.01%) ⬇️
platform-integration-latest 46.95% <ø> (-0.01%) ⬇️
platform-integration-maintenance 46.99% <ø> (-0.02%) ⬇️
platform-integration-oldest 47.16% <ø> (+<0.01%) ⬆️
platform-shimmer 42.29% <ø> (ø)
platform-unit-guardrails 36.12% <ø> (ø)
platform-webpack 20.48% <5.26%> (-0.16%) ⬇️
plugins-azure-durable-functions 36.97% <ø> (-0.01%) ⬇️
plugins-azure-event-hubs 34.81% <ø> (-0.01%) ⬇️
plugins-azure-service-bus 35.27% <ø> (-0.01%) ⬇️
plugins-bullmq 40.17% <ø> (+0.02%) ⬆️
plugins-cassandra 34.58% <ø> (-0.09%) ⬇️
plugins-cookie 26.65% <ø> (ø)
plugins-cookie-parser 26.46% <ø> (ø)
plugins-crypto 27.69% <ø> (ø)
plugins-dd-trace-api 34.72% <ø> (-0.09%) ⬇️
plugins-express-mongo-sanitize 26.59% <ø> (ø)
plugins-express-session 26.42% <ø> (ø)
plugins-fastify 38.68% <ø> (-0.09%) ⬇️
plugins-fetch 35.00% <ø> (-0.09%) ⬇️
plugins-fs 35.07% <ø> (-0.09%) ⬇️
plugins-generic-pool 25.58% <ø> (ø)
plugins-google-cloud-pubsub 42.41% <ø> (-0.08%) ⬇️
plugins-grpc 37.44% <ø> (-0.09%) ⬇️
plugins-handlebars 26.63% <ø> (ø)
plugins-hapi 36.57% <ø> (-0.09%) ⬇️
plugins-hono 36.86% <ø> (-0.09%) ⬇️
plugins-ioredis 35.15% <ø> (-0.09%) ⬇️
plugins-knex 26.31% <ø> (ø)
plugins-langgraph 34.42% <ø> (-0.09%) ⬇️
plugins-ldapjs 24.20% <ø> (ø)
plugins-light-my-request 26.06% <ø> (ø)
plugins-limitd-client 29.53% <ø> (-0.09%) ⬇️
plugins-lodash 25.65% <ø> (ø)
plugins-mariadb 36.06% <ø> (-0.03%) ⬇️
plugins-memcached 34.81% <ø> (-0.09%) ⬇️
plugins-microgateway-core 35.70% <ø> (-0.09%) ⬇️
plugins-modelcontextprotocol-sdk 33.71% <ø> (-0.09%) ⬇️
plugins-moleculer 37.53% <ø> (-0.09%) ⬇️
plugins-mongodb 35.95% <ø> (-0.09%) ⬇️
plugins-mongodb-core 35.57% <ø> (-0.09%) ⬇️
plugins-mongoose 35.45% <ø> (-0.07%) ⬇️
plugins-multer 26.42% <ø> (ø)
plugins-mysql 35.53% <ø> (-0.09%) ⬇️
plugins-mysql2 35.82% <ø> (-0.09%) ⬇️
plugins-node-serialize 26.69% <ø> (ø)
plugins-opensearch 34.46% <ø> (-0.09%) ⬇️
plugins-passport-http 26.47% <ø> (ø)
plugins-pino 31.24% <ø> (-0.09%) ⬇️
plugins-postgres 33.76% <ø> (-0.08%) ⬇️
plugins-process 27.69% <ø> (ø)
plugins-pug 26.65% <ø> (ø)
plugins-redis 35.15% <ø> (-0.09%) ⬇️
plugins-router 39.02% <ø> (-0.09%) ⬇️
plugins-sequelize 25.36% <ø> (ø)
plugins-test-and-upstream-amqp10 35.05% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-amqplib 40.28% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-apollo 35.91% <ø> (-0.08%) ⬇️
plugins-test-and-upstream-avsc 34.39% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-bunyan 30.61% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-connect 37.24% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-graphql 36.83% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-koa 36.76% <ø> (-0.16%) ⬇️
plugins-test-and-upstream-protobufjs 34.60% <ø> (-0.09%) ⬇️
plugins-test-and-upstream-rhea 40.30% <ø> (-0.09%) ⬇️
plugins-undici 35.73% <ø> (-0.08%) ⬇️
plugins-url 27.69% <ø> (ø)
plugins-valkey 34.82% <ø> (-0.09%) ⬇️
plugins-vm 27.69% <ø> (ø)
plugins-winston 31.13% <ø> (-0.09%) ⬇️
plugins-ws 38.24% <ø> (-0.22%) ⬇️
profiling-macos 42.73% <ø> (-0.11%) ⬇️
profiling-ubuntu 43.14% <ø> (-0.11%) ⬇️
profiling-windows 40.04% <ø> (-0.04%) ⬇️
serverless-aws-sdk-latest-aws-sdk 34.79% <ø> (-0.07%) ⬇️
serverless-aws-sdk-latest-bedrockruntime 33.31% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-client 22.38% <ø> (ø)
serverless-aws-sdk-latest-dynamodb 35.74% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-eventbridge 28.80% <ø> (-0.08%) ⬇️
serverless-aws-sdk-latest-kinesis 38.66% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-lambda 35.94% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-s3 33.87% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-serverless-peer-service 40.05% <ø> (-0.10%) ⬇️
serverless-aws-sdk-latest-sns 39.91% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-sqs 39.05% <ø> (-0.09%) ⬇️
serverless-aws-sdk-latest-stepfunctions 34.51% <ø> (-0.08%) ⬇️
serverless-aws-sdk-latest-util 47.71% <ø> (ø)
serverless-aws-sdk-oldest-aws-sdk 34.85% <ø> (-0.08%) ⬇️
serverless-aws-sdk-oldest-bedrockruntime 33.35% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-client 22.75% <ø> (ø)
serverless-aws-sdk-oldest-dynamodb 35.79% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-eventbridge 28.85% <ø> (-0.08%) ⬇️
serverless-aws-sdk-oldest-kinesis 38.78% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-lambda 35.98% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-s3 33.92% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-serverless-peer-service 40.12% <ø> (-0.10%) ⬇️
serverless-aws-sdk-oldest-sns 40.09% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-sqs 39.10% <ø> (-0.09%) ⬇️
serverless-aws-sdk-oldest-stepfunctions 34.55% <ø> (-0.08%) ⬇️
serverless-aws-sdk-oldest-util 48.03% <ø> (ø)
serverless-azure-functions-eventhubs 38.46% <ø> (-0.01%) ⬇️
serverless-azure-functions-servicebus 38.51% <ø> (-0.01%) ⬇️
serverless-lambda 32.81% <ø> (-0.08%) ⬇️
test-optimization-cucumber-latest-7.0.0 50.28% <ø> (+0.11%) ⬆️
test-optimization-cucumber-latest-latest 52.98% <ø> (+0.11%) ⬆️
test-optimization-cucumber-oldest-7.0.0 50.29% <ø> (+0.11%) ⬆️
test-optimization-cypress-latest-12.0.0-commonJS 48.25% <ø> (+0.04%) ⬆️
test-optimization-cypress-latest-12.0.0-esm 48.28% <ø> (+0.07%) ⬆️
test-optimization-cypress-latest-14.5.4-commonJS 48.10% <ø> (+0.06%) ⬆️
test-optimization-cypress-latest-14.5.4-esm 48.13% <ø> (+0.06%) ⬆️
test-optimization-cypress-latest-latest-commonJS 48.60% <ø> (+0.06%) ⬆️
test-optimization-cypress-latest-latest-esm 48.63% <ø> (+0.06%) ⬆️
test-optimization-cypress-oldest-12.0.0-commonJS 48.29% <ø> (+0.07%) ⬆️
test-optimization-cypress-oldest-12.0.0-esm 48.32% <ø> (+0.07%) ⬆️
test-optimization-cypress-oldest-14.5.4-commonJS 48.14% <ø> (+0.06%) ⬆️
test-optimization-cypress-oldest-14.5.4-esm 48.17% <ø> (+0.06%) ⬆️
test-optimization-jest-latest-latest 54.39% <ø> (+0.07%) ⬆️
test-optimization-jest-latest-oldest 53.56% <ø> (+0.11%) ⬆️
test-optimization-jest-oldest-latest 54.40% <ø> (+0.07%) ⬆️
test-optimization-jest-oldest-oldest 53.49% <ø> (+0.07%) ⬆️
test-optimization-mocha-latest-latest 53.26% <ø> (+0.13%) ⬆️
test-optimization-mocha-latest-oldest 50.88% <ø> (+0.15%) ⬆️
test-optimization-mocha-oldest-latest 53.33% <ø> (+0.13%) ⬆️
test-optimization-mocha-oldest-oldest 50.82% <ø> (+0.13%) ⬆️
test-optimization-playwright-latest-latest-playwright-active-test-span 44.25% <81.60%> (+0.84%) ⬆️
test-optimization-playwright-latest-latest-playwright-atr 43.01% <81.20%> (+0.68%) ⬆️
test-optimization-playwright-latest-latest-playwright-efd 43.39% <89.60%> (+0.77%) ⬆️
test-optimization-playwright-latest-latest-playwright-final-status 43.48% <80.40%> (+0.65%) ⬆️
test-optimization-playwright-latest-latest-playwright-impacted-tests 42.96% <82.00%> (+0.62%) ⬆️
test-optimization-playwright-latest-latest-playwright-reporting 42.44% <40.80%> (+0.04%) ⬆️
test-optimization-playwright-latest-latest-playwright-test-management 44.62% <60.40%> (+0.30%) ⬆️
test-optimization-playwright-latest-oldest-playwright-active-test-span 44.29% <81.60%> (+0.85%) ⬆️
test-optimization-playwright-latest-oldest-playwright-atr 43.20% <81.20%> (+0.69%) ⬆️
test-optimization-playwright-latest-oldest-playwright-efd 43.42% <89.60%> (+0.78%) ⬆️
test-optimization-playwright-latest-oldest-playwright-final-status 43.51% <80.40%> (+0.66%) ⬆️
test-optimization-playwright-latest-oldest-playwright-impacted-tests 42.98% <82.00%> (+0.61%) ⬆️
test-optimization-playwright-latest-oldest-playwright-reporting 42.47% <40.80%> (+0.04%) ⬆️
test-optimization-playwright-latest-oldest-playwright-test-management 44.67% <60.40%> (+0.30%) ⬆️
test-optimization-playwright-oldest-latest-playwright-active-test-span 44.26% <81.60%> (+0.84%) ⬆️
test-optimization-playwright-oldest-latest-playwright-atr 43.05% <81.20%> (+0.68%) ⬆️
test-optimization-playwright-oldest-latest-playwright-efd 43.40% <89.60%> (+0.77%) ⬆️
test-optimization-playwright-oldest-latest-playwright-final-status 43.49% <80.40%> (+0.65%) ⬆️
test-optimization-playwright-oldest-latest-playwright-impacted-tests 42.99% <82.00%> (+0.60%) ⬆️
test-optimization-playwright-oldest-latest-playwright-reporting 42.45% <40.80%> (+0.04%) ⬆️
test-optimization-playwright-oldest-latest-playwright-test-management 44.63% <60.40%> (+0.30%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-active-test-span 44.33% <81.60%> (+0.85%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-atr 43.24% <81.20%> (+0.69%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-efd 43.43% <89.60%> (+0.78%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-final-status 43.53% <80.40%> (+0.66%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-impacted-tests 43.02% <82.00%> (+0.61%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-reporting 42.49% <40.80%> (+0.04%) ⬆️
test-optimization-playwright-oldest-oldest-playwright-test-management 44.69% <60.40%> (+0.30%) ⬆️
test-optimization-selenium-latest 45.49% <ø> (+0.07%) ⬆️
test-optimization-selenium-oldest 44.98% <ø> (+0.07%) ⬆️
test-optimization-testopt-active 46.88% <37.20%> (+0.02%) ⬆️
test-optimization-testopt-latest 46.85% <37.20%> (+0.02%) ⬆️
test-optimization-testopt-maintenance 46.88% <37.20%> (+0.02%) ⬆️
test-optimization-testopt-oldest 47.75% <37.20%> (+0.01%) ⬆️
test-optimization-vitest-latest 50.93% <ø> (+0.07%) ⬆️
test-optimization-vitest-oldest 47.63% <ø> (+0.30%) ⬆️

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

☔ View full report in Codecov by Sentry.
📢 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.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

Overall package size

Self size: 5.79 MB
Deduped: 6.64 MB
No deduping: 6.64 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | import-in-the-middle | 3.0.1 | 82.56 kB | 817.39 kB | | dc-polyfill | 0.1.10 | 26.73 kB | 26.73 kB |

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

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

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

Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 80.65%
Overall Coverage: 86.57% (-0.02%)

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

@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-playwright branch from 4822aa8 to 2379d30 Compare May 6, 2026 13:04
@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-vitest branch from 5ee02f1 to 20768e7 Compare May 6, 2026 13:04
@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented May 7, 2026

Benchmarks

Benchmark execution time: 2026-05-08 12:14:00

Comparing candidate commit 34cca90 in PR branch juan-fernandez/efd-duration-retries-playwright with baseline commit d422180 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1737 metrics, 107 unstable metrics.

@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-vitest branch from d4fc7a8 to bae88c2 Compare May 7, 2026 15:52
@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-playwright branch from 9049a13 to ef86c88 Compare May 7, 2026 15:54
Base automatically changed from juan-fernandez/efd-duration-retries-vitest to master May 7, 2026 18:45
@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-playwright branch from ef86c88 to 7ff134e Compare May 7, 2026 18:49
@juan-fernandez juan-fernandez changed the title fix(ci-visibility): use duration buckets for playwright EFD retries [test optimization] Use duration buckets for playwright EFD retries May 7, 2026
@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-playwright branch from cce0cac to 16661a1 Compare May 7, 2026 19:10
@juan-fernandez juan-fernandez marked this pull request as ready for review May 7, 2026 19:27
@juan-fernandez juan-fernandez requested a review from a team as a code owner May 7, 2026 19:27
Copy link
Copy Markdown

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

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: 16661a1654

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +537 to +541
if (isEfdManagedTest && !test._ddIsEfdRetry && !efdRetryCountByTestFqn.has(testFqn)) {
const testResult = results.at(-1)
const duration = testResult?.duration > 0 ? testResult.duration : performance.now() - test._ddStartTime
const retryCount = getEfdRetryCount(duration, getTestEfdSlowTestRetries(test))
efdRetryCountByTestFqn.set(testFqn, retryCount)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Include project in EFD duration keys

When the same Playwright test is run in multiple projects/browsers, testFqn is only the file plus title, so the first project's duration bucket is stored here and every later project skips recomputing its own retry count. A slow browser can therefore suppress retries for a fast browser (or a fast browser can force extra retries for a slow one), because browserName/project id is not part of the key used by efdRetryCountByTestFqn and efdSlowAbortedTests.

Useful? React with 👍 / 👎.

Comment thread packages/datadog-instrumentations/src/playwright.js
@juan-fernandez juan-fernandez marked this pull request as draft May 7, 2026 19:31
@juan-fernandez
Copy link
Copy Markdown
Collaborator Author

@codex review

Copy link
Copy Markdown

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

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: 3cb844685a

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/datadog-instrumentations/src/playwright.js
@juan-fernandez juan-fernandez marked this pull request as ready for review May 8, 2026 08:50
anmarchenko
anmarchenko previously approved these changes May 8, 2026
Copy link
Copy Markdown

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

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: 3cb844685a

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +163 to +165
if (test.repeatEachIndex > 1) {
return test.repeatEachIndex - 1
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Do not infer EFD retries from native repeatEachIndex

When a user runs Playwright with native repeats and EFD is enabled for a new/impacted test, any repeated execution whose repeatEachIndex is greater than 1 is treated as a Datadog EFD retry even if it was created by Playwright's repeatEach/--repeat-each rather than by this instrumentation. Since the EFD key does not include the native repeat index, those user-requested repeats wait for the first execution's duration bucket and can then be marked/skipped by shouldSkipEfdRetry(), so scenarios like --repeat-each=3 no longer execute all requested repeats correctly.

Useful? React with 👍 / 👎.

@juan-fernandez
Copy link
Copy Markdown
Collaborator Author

@codex review

Copy link
Copy Markdown

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

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: 19926dea34

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/datadog-instrumentations/src/playwright.js Outdated
@juan-fernandez
Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Already looking forward to the next diff.

ℹ️ About Codex in GitHub

Your team has set up Codex to 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 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@juan-fernandez juan-fernandez enabled auto-merge (squash) May 8, 2026 11:45
@juan-fernandez juan-fernandez force-pushed the juan-fernandez/efd-duration-retries-playwright branch from 5054a16 to 34cca90 Compare May 8, 2026 11:48
@juan-fernandez juan-fernandez merged commit 7350d99 into master May 8, 2026
900 checks passed
@juan-fernandez juan-fernandez deleted the juan-fernandez/efd-duration-retries-playwright branch May 8, 2026 12:14
This was referenced May 9, 2026
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