chore(benchmarks): update known flaky benchmarks - #20050
Conversation
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Dependency direction analysis
|
Circular import analysis
|
Codeowners resolved asResolved from the full PR diff against |
|
BenchmarksBenchmark execution time: 2026-09-05 07:02:26 Comparing candidate commit 74034ea in PR branch Found 0 performance improvements and 3 performance regressions! Performance is the same for 569 metrics, 10 unstable metrics, 7 known flaky benchmarks, 17 flaky benchmarks without significant changes.
|
A single hit across 33 control PRs is weak evidence of flakiness, and suppressing on it costs gate sensitivity. Keep only the scenarios flagged 5 or more times. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Raise the bar for entering FLAKY_BENCHMARKS_REGEX from 2 hits to a majority of the 33-PR control group. Keeps the five scenarios flagged on 23/33 or more and drops the rest, which stay measured rather than trading gate sensitivity for weak evidence. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
Updates known flaky benchmarks with
httppropagationinject-ids_only,iastaspectsospath-ospathbasename_aspect,iastaspectssplit-(rsplit_aspect|rstrip_aspect),telemetryaddmetric-1-count-metric-1-timesandtracer-small.This prevents flaky benchmarks from breaching SLOs and polluting PR comments.
Testing
None.
Risks
None.
Additional Notes
I investigated 49 recent PRs that change code that shouldn't impact benchmarks: docs, release notes, tests,
.riot/lockfiles, CI config.33 reported performance changes on scenarios outside our known flaky benchmarks. Adding the ones flagged on more than half of the 33:
httppropagationinject-ids_only— 33/33, median +12.7%iastaspectsospath-ospathbasename_aspect— 33/33, median +31.2%telemetryaddmetric-1-count-metric-1-times— 33/33, median +16.3%tracer-small— 33/33, median +10.0%iastaspectssplit-rsplit_aspect— 23/33, median +14.6%Some scenarios are already in the known flaky benchmarks regex, corroborated by this data:
span-start-- 29/33iastaspects-ljust_noaspect-- 10/33iastaspects-casefold_noaspect-- 7/33iastaspects-title_noaspect-- 3/33Flagged on half of the 33 or fewer, left out as weak evidence:
iastaspects-add_aspect— 15/33iastaspects-title_aspect— 14/33iastaspects-join_aspect— 11/33httppropagationextract-tracecontext_headers— 10/33httppropagationextract-wsgi_valid_headers_all— 6/33iastaspects-upper_aspect— 4/33iastaspects-repr_aspect— 3/33iastaspects-modulo_noaspect— 2/33iastaspects-rstrip_aspect— 2/33iastaspects-stringio_noaspect— 2/33iastaspects-stringio_aspect— 2/33iastaspects-lstrip_aspect— 2/33iastaspects-ljust_aspect— 1/33iastaspects-lower_aspect— 1/33iastaspects-swapcase_aspect— 1/33iastaspects-translate_noaspect— 1/33samplingrules-high_match— 1/33See investigated PRs (49)
- [#19545](https://github.com//pull/19545) — ci: itr rollout configuration - [#19566](https://github.com//pull/19566) — docs: add benchmarking CI documentation - [#19786](https://github.com//pull/19786) — chore: handle potential after-import exceptions - [#19826](https://github.com//pull/19826) — chore: update django latest version to 6.1 _(no benchmark report)_ - [#19828](https://github.com//pull/19828) — chore(tests): bump gevent to 26.8.0 to stop the flaky django IAST shutdown test - [#19831](https://github.com//pull/19831) — test(profiling): try to make uwsgi less flaky _(no benchmark report)_ - [#19835](https://github.com//pull/19835) — ci(hooks): block partially staged Python files from committing unformatted (PROF-15836) - [#19836](https://github.com//pull/19836) — ci: reuse test installs and lock documentation builds - [#19838](https://github.com//pull/19838) — ci(sg): fail commits on double backticks in ddtrace comments/docstrings (PROF-15837) - [#19839](https://github.com//pull/19839) — test(ci): harden Django and pytest subprocess tests - [#19842](https://github.com//pull/19842) — ci(commenter): safely serialize message from PR commenter bot - [#19843](https://github.com//pull/19843) — chore(py-315): raise SSI exclusive max to 3.16 and pre-stage 3.15 injection (PROF-15812) - [#19846](https://github.com//pull/19846) — test(appsec): bound and raise the test server startup budget - [#19847](https://github.com//pull/19847) — test(iast): flaky test_packages_patched pyjwt _(no benchmark report)_ - [#19853](https://github.com//pull/19853) — test(appsec): enable appsec_integrations_fastapi on Python 3.15 - [#19862](https://github.com//pull/19862) — test(opentracing): remove stale Riot environments - [#19866](https://github.com//pull/19866) — ci(appsec): isolate Django server from gevent cleanup _(no benchmark report)_ - [#19871](https://github.com//pull/19871) — test(aiguard): cover multi-turn sensitive data redaction scenarios - [#19872](https://github.com//pull/19872) — chore(kafka): remove stale _dd.svc_src from service override snapshot _(no benchmark report)_ - [#19874](https://github.com//pull/19874) — test(kafka): update service source snapshots [Part 2] _(no benchmark report)_ - [#19878](https://github.com//pull/19878) — refactor(tests): standardize test runner interface _(no benchmark report)_ - [#19879](https://github.com//pull/19879) — test(dramatiq): enable tests for Python 3.14 - [#19880](https://github.com//pull/19880) — ci: withhold cp315 wheels from PyPI and the prerelease index (PROF-15857) - [#19885](https://github.com//pull/19885) — ci: automatically retry os tests - [#19897](https://github.com//pull/19897) — chore(ci): djangosimple-tracer-dont-create-db-spans slo bump - [#19904](https://github.com//pull/19904) — ci(build_base_venvs): let riot install the dev package on Python 3.15 (PROF-14439) - [#19907](https://github.com//pull/19907) — ci(testrunner): rebuild 3.15-dev and pin Cython<3.3 on the 3.15 cache (PROF-14439) - [#19914](https://github.com//pull/19914) — test(profiling): unflake `gevent_greenlet_switch_not_blocked_by_profiler` - [#19923](https://github.com//pull/19923) — chore: exclude integration manifests yaml from source distributions _(no benchmark report)_ - [#19926](https://github.com//pull/19926) — ci: auto-retry `build windows` jobs - [#19936](https://github.com//pull/19936) — ci: bump wheel-builder IMAGE_TAGs after images (PROF-15844) - [#19951](https://github.com//pull/19951) — test(profiling): unflake gc tests - [#19954](https://github.com//pull/19954) — test(llmobs): fix flaky test _(no benchmark report)_ - [#19960](https://github.com//pull/19960) — ci: install ddtest 1.7.0 and riot 0.23.0 in testrunner image - [#19961](https://github.com//pull/19961) — test(iast): fix cloned venv poisoning [APPSEC-69907] _(no benchmark report)_ - [#19962](https://github.com//pull/19962) — test(iast): give appsec test servers their own port [APPSEC-69907] _(no benchmark report)_ - [#19964](https://github.com//pull/19964) — test(iast): assert MODULES_TO_UNPATCH deltas [APPSEC-69907] _(no benchmark report)_ - [#19965](https://github.com//pull/19965) — test(iast): unwrap weak hash before each test patches it [APPSEC-69907] _(no benchmark report)_ - [#19966](https://github.com//pull/19966) — test(iast): stop the global vulnerability limit leaking between tests [APPSEC-69907] _(no benchmark report)_ - [#19967](https://github.com//pull/19967) — chore(ci): pin numeric UID for testrunner image's bits user _(no benchmark report)_ - [#19968](https://github.com//pull/19968) — test(appsec): stop waiting 0.5s per api10 test teardown [APPSEC-69907] _(no benchmark report)_ - [#19973](https://github.com//pull/19973) — chore(tests): declare tracer environments in suitespec - [#19974](https://github.com//pull/19974) — test(telemetry): support PathResolutionError in wrapt 2.4.0 - [#19977](https://github.com//pull/19977) — ci(testrunner): install pip-tools for Python 3.15 - [#19984](https://github.com//pull/19984) — ci: update testrunner image - [#19985](https://github.com//pull/19985) — test(appsec): appsec_threats 55% faster, ~12h of CI saved per pipeline [APPSEC-69907] - [#19994](https://github.com//pull/19994) — ci(benchmarks): bump codeprovenancefork-fork-10 SLO - [#19997](https://github.com//pull/19997) — chore(tests): execute tracer suites with uv - [#20025](https://github.com//pull/20025) — test(appsec): run appsec_threats suites in parallel with pytest-xdist