Skip to content

chore(selenium): use dockerized selenium setup for tests#17708

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 5 commits intomainfrom
gnufede/docker-selenium
Apr 27, 2026
Merged

chore(selenium): use dockerized selenium setup for tests#17708
gh-worker-dd-mergequeue-cf854d[bot] merged 5 commits intomainfrom
gnufede/docker-selenium

Conversation

@gnufede
Copy link
Copy Markdown
Member

@gnufede gnufede commented Apr 23, 2026

Description

The selenium tests were previously gated behind a platform.machine() == "x86_64" check because selenium-manager (bundled with the selenium package) has no binary for linux/aarch64, making them impossible to run locally on Apple Silicon.

This PR replaces the local webdriver.Chrome setup with webdriver.Remote pointing at a selenium/standalone-chrome Docker service (linux/amd64). This decouples the test runner architecture from the browser architecture, so tests run on any host.

Changes:

  • docker-compose.yml: adds a selenium-chrome service (selenium/standalone-chrome:latest, platform: linux/amd64, network_mode: host) so local runs via scripts/ddtest work on arm64 hosts
  • .gitlab/services.yml: registers selenium-chrome as a named GitLab CI service pointing at the internal registry mirror
  • tests/ci_visibility/suitespec.yml: adds selenium-chrome to the selenium suite's required services and sets SELENIUM_GRID_URL=http://selenium-chrome:4444 for CI (where services are accessed by hostname alias rather than localhost)
  • test_selenium_chrome.py: removes the x86_64 skipif guards and the platform import; extracts a _make_driver() helper that uses webdriver.Remote with SELENIUM_GRID_URL (defaults to http://localhost:4444 for local runs)
  • Snapshots: updated test.source.start / test.source.end metrics to reflect the refactored test script line numbers; also added meta._dd.svc_src and meta._dd.tags.process to the snapshot ignore list (new fields emitted by newer ddtrace versions)

Testing

  • Ran all 4 selenium tests locally via scripts/run-tests with the selenium-chrome Docker service active — all pass
  • test_selenium_v3_plugin_tags (mock-based, no real browser) continues to pass as before

Risks

  • selenium/standalone-chrome:latest is a mutable tag — if the image is updated it may change browser/driver versions. The snapshot ignore list already excludes test.browser.version and test.browser.driver_version so this is safe.

Additional Notes

The SELENIUM_GRID_URL env var allows the grid endpoint to be overridden without code changes, which is useful if the service is ever moved or renamed.

@cit-pr-commenter-54b7da
Copy link
Copy Markdown

cit-pr-commenter-54b7da Bot commented Apr 23, 2026

Codeowners resolved as

.gitlab/services.yml                                                    @DataDog/python-guild @DataDog/apm-core-python
docker-compose.yml                                                      @DataDog/python-guild
tests/ci_visibility/suitespec.yml                                       @DataDog/ci-app-libraries
tests/contrib/selenium/test_selenium_chrome.py                          @DataDog/ci-app-libraries
tests/snapshots/test_selenium_chrome.test_selenium_chrome_pytest_rum_disabled.json  @DataDog/ci-app-libraries
tests/snapshots/test_selenium_chrome.test_selenium_chrome_pytest_rum_enabled.json  @DataDog/ci-app-libraries
tests/snapshots/test_selenium_chrome.test_selenium_chrome_pytest_unpatch_does_not_record_selenium_tags.json  @DataDog/ci-app-libraries

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Apr 23, 2026

Performance SLOs

Comparing candidate gnufede/docker-selenium (85a0215) with baseline main (791f853)

📈 Performance Regressions (2 suites)
📈 iastaspects - 118/118

✅ add_aspect

Time: ✅ 103.698µs (SLO: <130.000µs 📉 -20.2%) vs baseline: +2.8%

Memory: ✅ 43.957MB (SLO: <46.000MB -4.4%) vs baseline: +4.9%


✅ add_inplace_aspect

Time: ✅ 101.491µs (SLO: <130.000µs 📉 -21.9%) vs baseline: +1.0%

Memory: ✅ 44.013MB (SLO: <46.000MB -4.3%) vs baseline: +5.3%


✅ add_inplace_noaspect

Time: ✅ 28.250µs (SLO: <40.000µs 📉 -29.4%) vs baseline: ~same

Memory: ✅ 43.991MB (SLO: <46.000MB -4.4%) vs baseline: +5.0%


✅ add_noaspect

Time: ✅ 49.005µs (SLO: <70.000µs 📉 -30.0%) vs baseline: -0.6%

Memory: ✅ 43.857MB (SLO: <46.000MB -4.7%) vs baseline: +4.8%


✅ bytearray_aspect

Time: ✅ 264.224µs (SLO: <400.000µs 📉 -33.9%) vs baseline: -1.7%

Memory: ✅ 43.911MB (SLO: <46.000MB -4.5%) vs baseline: +5.0%


✅ bytearray_extend_aspect

Time: ✅ 662.205µs (SLO: <800.000µs 📉 -17.2%) vs baseline: +1.4%

Memory: ✅ 44.045MB (SLO: <46.000MB -4.3%) vs baseline: +5.2%


✅ bytearray_extend_noaspect

Time: ✅ 272.786µs (SLO: <400.000µs 📉 -31.8%) vs baseline: +1.0%

Memory: ✅ 43.920MB (SLO: <46.000MB -4.5%) vs baseline: +4.7%


✅ bytearray_noaspect

Time: ✅ 147.184µs (SLO: <300.000µs 📉 -50.9%) vs baseline: +1.0%

Memory: ✅ 43.890MB (SLO: <46.000MB -4.6%) vs baseline: +4.6%


✅ bytes_aspect

Time: ✅ 228.988µs (SLO: <300.000µs 📉 -23.7%) vs baseline: -1.2%

Memory: ✅ 43.886MB (SLO: <46.000MB -4.6%) vs baseline: +4.7%


✅ bytes_noaspect

Time: ✅ 139.001µs (SLO: <200.000µs 📉 -30.5%) vs baseline: -1.7%

Memory: ✅ 43.914MB (SLO: <46.000MB -4.5%) vs baseline: +4.7%


✅ bytesio_aspect

Time: ✅ 3.849ms (SLO: <5.000ms 📉 -23.0%) vs baseline: +0.6%

Memory: ✅ 44.052MB (SLO: <46.000MB -4.2%) vs baseline: +5.2%


✅ bytesio_noaspect

Time: ✅ 317.678µs (SLO: <420.000µs 📉 -24.4%) vs baseline: -1.8%

Memory: ✅ 43.912MB (SLO: <46.000MB -4.5%) vs baseline: +4.8%


✅ capitalize_aspect

Time: ✅ 89.574µs (SLO: <300.000µs 📉 -70.1%) vs baseline: ~same

Memory: ✅ 43.916MB (SLO: <46.000MB -4.5%) vs baseline: +5.1%


✅ capitalize_noaspect

Time: ✅ 254.364µs (SLO: <300.000µs 📉 -15.2%) vs baseline: +0.6%

Memory: ✅ 43.795MB (SLO: <46.000MB -4.8%) vs baseline: +4.6%


✅ casefold_aspect

Time: ✅ 92.152µs (SLO: <500.000µs 📉 -81.6%) vs baseline: +3.2%

Memory: ✅ 43.858MB (SLO: <46.000MB -4.7%) vs baseline: +4.7%


✅ casefold_noaspect

Time: ✅ 313.367µs (SLO: <500.000µs 📉 -37.3%) vs baseline: -0.5%

Memory: ✅ 43.890MB (SLO: <46.000MB -4.6%) vs baseline: +4.7%


✅ decode_aspect

Time: ✅ 86.670µs (SLO: <100.000µs 📉 -13.3%) vs baseline: -0.2%

Memory: ✅ 43.841MB (SLO: <46.000MB -4.7%) vs baseline: +4.5%


✅ decode_noaspect

Time: ✅ 156.556µs (SLO: <210.000µs 📉 -25.4%) vs baseline: -1.3%

Memory: ✅ 43.877MB (SLO: <46.000MB -4.6%) vs baseline: +5.0%


✅ encode_aspect

Time: ✅ 84.797µs (SLO: <200.000µs 📉 -57.6%) vs baseline: -0.4%

Memory: ✅ 44.023MB (SLO: <46.000MB -4.3%) vs baseline: +5.0%


✅ encode_noaspect

Time: ✅ 145.941µs (SLO: <200.000µs 📉 -27.0%) vs baseline: +0.3%

Memory: ✅ 43.906MB (SLO: <46.000MB -4.6%) vs baseline: +4.7%


✅ format_aspect

Time: ✅ 14.614ms (SLO: <19.200ms 📉 -23.9%) vs baseline: ~same

Memory: ✅ 43.932MB (SLO: <46.000MB -4.5%) vs baseline: +4.7%


✅ format_map_aspect

Time: ✅ 16.352ms (SLO: <21.500ms 📉 -23.9%) vs baseline: ~same

Memory: ✅ 44.010MB (SLO: <46.000MB -4.3%) vs baseline: +5.1%


✅ format_map_noaspect

Time: ✅ 361.348µs (SLO: <500.000µs 📉 -27.7%) vs baseline: +0.2%

Memory: ✅ 43.960MB (SLO: <46.000MB -4.4%) vs baseline: +4.9%


✅ format_noaspect

Time: ✅ 312.522µs (SLO: <500.000µs 📉 -37.5%) vs baseline: ~same

Memory: ✅ 43.852MB (SLO: <46.000MB -4.7%) vs baseline: +4.7%


✅ index_aspect

Time: ✅ 123.274µs (SLO: <300.000µs 📉 -58.9%) vs baseline: +0.3%

Memory: ✅ 43.974MB (SLO: <46.000MB -4.4%) vs baseline: +5.0%


✅ index_noaspect

Time: ✅ 40.698µs (SLO: <300.000µs 📉 -86.4%) vs baseline: -0.1%

Memory: ✅ 43.975MB (SLO: <46.000MB -4.4%) vs baseline: +4.7%


✅ join_aspect

Time: ✅ 216.236µs (SLO: <300.000µs 📉 -27.9%) vs baseline: +0.4%

Memory: ✅ 43.885MB (SLO: <46.000MB -4.6%) vs baseline: +4.8%


✅ join_noaspect

Time: ✅ 142.599µs (SLO: <300.000µs 📉 -52.5%) vs baseline: -0.8%

Memory: ✅ 43.957MB (SLO: <46.000MB -4.4%) vs baseline: +4.9%


✅ ljust_aspect

Time: ✅ 503.615µs (SLO: <700.000µs 📉 -28.1%) vs baseline: +0.1%

Memory: ✅ 43.902MB (SLO: <46.000MB -4.6%) vs baseline: +4.4%


✅ ljust_noaspect

Time: ✅ 260.431µs (SLO: <300.000µs 📉 -13.2%) vs baseline: ~same

Memory: ✅ 43.955MB (SLO: <46.000MB -4.4%) vs baseline: +5.0%


✅ lower_aspect

Time: ✅ 309.392µs (SLO: <500.000µs 📉 -38.1%) vs baseline: +0.3%

Memory: ✅ 43.874MB (SLO: <46.000MB -4.6%) vs baseline: +4.7%


✅ lower_noaspect

Time: ✅ 237.887µs (SLO: <300.000µs 📉 -20.7%) vs baseline: +0.4%

Memory: ✅ 43.958MB (SLO: <46.000MB -4.4%) vs baseline: +5.1%


✅ lstrip_aspect

Time: ✅ 0.344ms (SLO: <3.000ms 📉 -88.5%) vs baseline: 📈 +25.0%

Memory: ✅ 43.952MB (SLO: <46.000MB -4.5%) vs baseline: +5.2%


✅ lstrip_noaspect

Time: ✅ 0.176ms (SLO: <3.000ms 📉 -94.1%) vs baseline: -1.7%

Memory: ✅ 43.782MB (SLO: <46.000MB -4.8%) vs baseline: +4.4%


✅ modulo_aspect

Time: ✅ 14.218ms (SLO: <18.750ms 📉 -24.2%) vs baseline: ~same

Memory: ✅ 43.849MB (SLO: <46.000MB -4.7%) vs baseline: +4.6%


✅ modulo_aspect_for_bytearray_bytearray

Time: ✅ 14.706ms (SLO: <19.350ms 📉 -24.0%) vs baseline: -0.4%

Memory: ✅ 44.061MB (SLO: <46.000MB -4.2%) vs baseline: +5.3%


✅ modulo_aspect_for_bytes

Time: ✅ 14.387ms (SLO: <18.900ms 📉 -23.9%) vs baseline: ~same

Memory: ✅ 43.915MB (SLO: <46.000MB -4.5%) vs baseline: +4.9%


✅ modulo_aspect_for_bytes_bytearray

Time: ✅ 14.611ms (SLO: <19.150ms 📉 -23.7%) vs baseline: ~same

Memory: ✅ 44.100MB (SLO: <46.000MB -4.1%) vs baseline: +5.3%


✅ modulo_noaspect

Time: ✅ 0.361ms (SLO: <3.000ms 📉 -88.0%) vs baseline: -0.9%

Memory: ✅ 43.906MB (SLO: <46.000MB -4.6%) vs baseline: +4.8%


✅ replace_aspect

Time: ✅ 18.341ms (SLO: <24.000ms 📉 -23.6%) vs baseline: +0.1%

Memory: ✅ 44.100MB (SLO: <46.000MB -4.1%) vs baseline: +5.1%


✅ replace_noaspect

Time: ✅ 305.491µs (SLO: <400.000µs 📉 -23.6%) vs baseline: +6.2%

Memory: ✅ 43.977MB (SLO: <46.000MB -4.4%) vs baseline: +4.9%


✅ repr_aspect

Time: ✅ 321.299µs (SLO: <420.000µs 📉 -23.5%) vs baseline: -0.9%

Memory: ✅ 43.910MB (SLO: <46.000MB -4.5%) vs baseline: +4.7%


✅ repr_noaspect

Time: ✅ 46.480µs (SLO: <90.000µs 📉 -48.4%) vs baseline: -0.6%

Memory: ✅ 43.978MB (SLO: <46.000MB -4.4%) vs baseline: +5.0%


✅ rstrip_aspect

Time: ✅ 387.386µs (SLO: <500.000µs 📉 -22.5%) vs baseline: ~same

Memory: ✅ 43.926MB (SLO: <46.000MB -4.5%) vs baseline: +5.1%


✅ rstrip_noaspect

Time: ✅ 184.618µs (SLO: <300.000µs 📉 -38.5%) vs baseline: ~same

Memory: ✅ 43.975MB (SLO: <46.000MB -4.4%) vs baseline: +5.2%


✅ slice_aspect

Time: ✅ 181.126µs (SLO: <300.000µs 📉 -39.6%) vs baseline: -0.7%

Memory: ✅ 43.886MB (SLO: <46.000MB -4.6%) vs baseline: +4.4%


✅ slice_noaspect

Time: ✅ 53.797µs (SLO: <90.000µs 📉 -40.2%) vs baseline: +0.3%

Memory: ✅ 43.967MB (SLO: <46.000MB -4.4%) vs baseline: +4.8%


✅ stringio_aspect

Time: ✅ 3.866ms (SLO: <5.000ms 📉 -22.7%) vs baseline: -0.4%

Memory: ✅ 43.902MB (SLO: <46.000MB -4.6%) vs baseline: +4.5%


✅ stringio_noaspect

Time: ✅ 356.636µs (SLO: <500.000µs 📉 -28.7%) vs baseline: -0.1%

Memory: ✅ 44.014MB (SLO: <46.000MB -4.3%) vs baseline: +5.2%


✅ strip_aspect

Time: ✅ 275.384µs (SLO: <350.000µs 📉 -21.3%) vs baseline: +0.4%

Memory: ✅ 43.949MB (SLO: <46.000MB -4.5%) vs baseline: +4.9%


✅ strip_noaspect

Time: ✅ 176.513µs (SLO: <240.000µs 📉 -26.5%) vs baseline: ~same

Memory: ✅ 43.851MB (SLO: <46.000MB -4.7%) vs baseline: +4.6%


✅ swapcase_aspect

Time: ✅ 343.817µs (SLO: <500.000µs 📉 -31.2%) vs baseline: -1.8%

Memory: ✅ 43.895MB (SLO: <46.000MB -4.6%) vs baseline: +4.7%


✅ swapcase_noaspect

Time: ✅ 275.302µs (SLO: <400.000µs 📉 -31.2%) vs baseline: +0.8%

Memory: ✅ 43.895MB (SLO: <46.000MB -4.6%) vs baseline: +4.7%


✅ title_aspect

Time: ✅ 338.546µs (SLO: <500.000µs 📉 -32.3%) vs baseline: -1.4%

Memory: ✅ 43.910MB (SLO: <46.000MB -4.5%) vs baseline: +4.6%


✅ title_noaspect

Time: ✅ 263.110µs (SLO: <400.000µs 📉 -34.2%) vs baseline: +0.6%

Memory: ✅ 43.919MB (SLO: <46.000MB -4.5%) vs baseline: +5.0%


✅ translate_aspect

Time: ✅ 574.285µs (SLO: <700.000µs 📉 -18.0%) vs baseline: 📈 +11.4%

Memory: ✅ 43.935MB (SLO: <46.000MB -4.5%) vs baseline: +5.0%


✅ translate_noaspect

Time: ✅ 430.578µs (SLO: <500.000µs 📉 -13.9%) vs baseline: -0.3%

Memory: ✅ 43.919MB (SLO: <46.000MB -4.5%) vs baseline: +4.9%


✅ upper_aspect

Time: ✅ 318.066µs (SLO: <500.000µs 📉 -36.4%) vs baseline: +3.3%

Memory: ✅ 43.982MB (SLO: <46.000MB -4.4%) vs baseline: +4.7%


✅ upper_noaspect

Time: ✅ 241.522µs (SLO: <400.000µs 📉 -39.6%) vs baseline: +2.2%

Memory: ✅ 43.921MB (SLO: <46.000MB -4.5%) vs baseline: +4.8%


📈 iastaspectsospath - 24/24

✅ ospathbasename_aspect

Time: ✅ 523.942µs (SLO: <700.000µs 📉 -25.2%) vs baseline: 📈 +24.7%

Memory: ✅ 43.931MB (SLO: <46.000MB -4.5%) vs baseline: +4.8%


✅ ospathbasename_noaspect

Time: ✅ 429.919µs (SLO: <700.000µs 📉 -38.6%) vs baseline: +0.5%

Memory: ✅ 43.885MB (SLO: <46.000MB -4.6%) vs baseline: +5.1%


✅ ospathjoin_aspect

Time: ✅ 627.539µs (SLO: <700.000µs 📉 -10.4%) vs baseline: -0.7%

Memory: ✅ 43.843MB (SLO: <46.000MB -4.7%) vs baseline: +4.9%


✅ ospathjoin_noaspect

Time: ✅ 637.694µs (SLO: <700.000µs -8.9%) vs baseline: -0.5%

Memory: ✅ 43.914MB (SLO: <46.000MB -4.5%) vs baseline: +5.1%


✅ ospathnormcase_aspect

Time: ✅ 352.603µs (SLO: <700.000µs 📉 -49.6%) vs baseline: +0.4%

Memory: ✅ 43.817MB (SLO: <46.000MB -4.7%) vs baseline: +4.7%


✅ ospathnormcase_noaspect

Time: ✅ 361.438µs (SLO: <700.000µs 📉 -48.4%) vs baseline: +1.5%

Memory: ✅ 43.808MB (SLO: <46.000MB -4.8%) vs baseline: +4.9%


✅ ospathsplit_aspect

Time: ✅ 481.789µs (SLO: <700.000µs 📉 -31.2%) vs baseline: -0.6%

Memory: ✅ 43.938MB (SLO: <46.000MB -4.5%) vs baseline: +5.2%


✅ ospathsplit_noaspect

Time: ✅ 491.273µs (SLO: <700.000µs 📉 -29.8%) vs baseline: -0.2%

Memory: ✅ 43.925MB (SLO: <46.000MB -4.5%) vs baseline: +4.8%


✅ ospathsplitdrive_aspect

Time: ✅ 370.570µs (SLO: <700.000µs 📉 -47.1%) vs baseline: -0.7%

Memory: ✅ 43.809MB (SLO: <46.000MB -4.8%) vs baseline: +4.7%


✅ ospathsplitdrive_noaspect

Time: ✅ 72.640µs (SLO: <700.000µs 📉 -89.6%) vs baseline: -1.1%

Memory: ✅ 43.840MB (SLO: <46.000MB -4.7%) vs baseline: +4.7%


✅ ospathsplitext_aspect

Time: ✅ 459.086µs (SLO: <700.000µs 📉 -34.4%) vs baseline: -0.7%

Memory: ✅ 43.954MB (SLO: <46.000MB -4.4%) vs baseline: +4.7%


✅ ospathsplitext_noaspect

Time: ✅ 465.076µs (SLO: <700.000µs 📉 -33.6%) vs baseline: ~same

Memory: ✅ 43.997MB (SLO: <46.000MB -4.4%) vs baseline: +4.9%

🟡 Near SLO Breach (6 suites)
🟡 djangosimple - 28/28

✅ appsec

Time: ✅ 19.633ms (SLO: <22.300ms 📉 -12.0%) vs baseline: ~same

Memory: ✅ 71.300MB (SLO: <73.500MB -3.0%) vs baseline: +4.7%


✅ exception-replay-enabled

Time: ✅ 1.363ms (SLO: <1.450ms -6.0%) vs baseline: -0.2%

Memory: ✅ 69.649MB (SLO: <71.500MB -2.6%) vs baseline: +4.8%


✅ iast

Time: ✅ 19.623ms (SLO: <22.250ms 📉 -11.8%) vs baseline: -0.4%

Memory: ✅ 71.560MB (SLO: <75.000MB -4.6%) vs baseline: +5.1%


✅ profiler

Time: ✅ 15.137ms (SLO: <16.550ms -8.5%) vs baseline: -0.7%

Memory: ✅ 60.444MB (SLO: <61.000MB 🟡 -0.9%) vs baseline: +4.9%


✅ resource-renaming

Time: ✅ 19.475ms (SLO: <21.750ms 📉 -10.5%) vs baseline: -0.4%

Memory: ✅ 71.658MB (SLO: <73.500MB -2.5%) vs baseline: +5.1%


✅ span-code-origin

Time: ✅ 20.039ms (SLO: <28.200ms 📉 -28.9%) vs baseline: +1.2%

Memory: ✅ 71.674MB (SLO: <75.000MB -4.4%) vs baseline: +4.8%


✅ tracer

Time: ✅ 19.651ms (SLO: <21.750ms -9.7%) vs baseline: -0.3%

Memory: ✅ 71.468MB (SLO: <75.000MB -4.7%) vs baseline: +4.8%


✅ tracer-and-profiler

Time: ✅ 21.055ms (SLO: <23.500ms 📉 -10.4%) vs baseline: +0.3%

Memory: ✅ 73.531MB (SLO: <75.000MB 🟡 -2.0%) vs baseline: +4.9%


✅ tracer-dont-create-db-spans

Time: ✅ 19.696ms (SLO: <21.500ms -8.4%) vs baseline: +0.3%

Memory: ✅ 71.418MB (SLO: <75.000MB -4.8%) vs baseline: +4.9%


✅ tracer-minimal

Time: ✅ 17.818ms (SLO: <18.500ms -3.7%) vs baseline: -0.9%

Memory: ✅ 71.494MB (SLO: <75.000MB -4.7%) vs baseline: +4.9%


✅ tracer-no-caches

Time: ✅ 18.860ms (SLO: <19.650ms -4.0%) vs baseline: +0.2%

Memory: ✅ 71.426MB (SLO: <75.000MB -4.8%) vs baseline: +4.8%


✅ tracer-no-databases

Time: ✅ 20.602ms (SLO: <21.100ms -2.4%) vs baseline: -0.2%

Memory: ✅ 71.490MB (SLO: <75.000MB -4.7%) vs baseline: +4.7%


✅ tracer-no-middleware

Time: ✅ 20.726ms (SLO: <21.500ms -3.6%) vs baseline: -0.5%

Memory: ✅ 71.429MB (SLO: <75.000MB -4.8%) vs baseline: +4.7%


✅ tracer-no-templates

Time: ✅ 19.489ms (SLO: <22.000ms 📉 -11.4%) vs baseline: +0.4%

Memory: ✅ 71.313MB (SLO: <73.500MB -3.0%) vs baseline: +4.7%


🟡 otelspan - 22/22

✅ add-event

Time: ✅ 41.388ms (SLO: <47.150ms 📉 -12.2%) vs baseline: -0.6%

Memory: ✅ 41.572MB (SLO: <47.000MB 📉 -11.5%) vs baseline: +4.9%


✅ add-metrics

Time: ✅ 234.857ms (SLO: <344.800ms 📉 -31.9%) vs baseline: +0.4%

Memory: ✅ 45.391MB (SLO: <47.500MB -4.4%) vs baseline: +4.6%


✅ add-tags

Time: ✅ 265.805ms (SLO: <330.000ms 📉 -19.5%) vs baseline: +0.3%

Memory: ✅ 45.511MB (SLO: <47.500MB -4.2%) vs baseline: +4.7%


✅ get-context

Time: ✅ 81.162ms (SLO: <92.350ms 📉 -12.1%) vs baseline: +0.3%

Memory: ✅ 41.347MB (SLO: <46.500MB 📉 -11.1%) vs baseline: +5.3%


✅ is-recording

Time: ✅ 38.004ms (SLO: <44.500ms 📉 -14.6%) vs baseline: ~same

Memory: ✅ 40.860MB (SLO: <47.500MB 📉 -14.0%) vs baseline: +4.5%


✅ record-exception

Time: ✅ 62.844ms (SLO: <67.650ms -7.1%) vs baseline: +0.2%

Memory: ✅ 41.889MB (SLO: <47.000MB 📉 -10.9%) vs baseline: +4.9%


✅ set-status

Time: ✅ 43.586ms (SLO: <50.400ms 📉 -13.5%) vs baseline: ~same

Memory: ✅ 40.905MB (SLO: <47.000MB 📉 -13.0%) vs baseline: +4.6%


✅ start

Time: ✅ 39.073ms (SLO: <44.500ms 📉 -12.2%) vs baseline: +5.3%

Memory: ✅ 40.810MB (SLO: <47.000MB 📉 -13.2%) vs baseline: +4.1%


✅ start-finish

Time: ✅ 90.082ms (SLO: <92.000ms -2.1%) vs baseline: ~same

Memory: ✅ 38.791MB (SLO: <46.500MB 📉 -16.6%) vs baseline: +4.8%


✅ start-finish-telemetry

Time: ✅ 91.732ms (SLO: <93.000ms 🟡 -1.4%) vs baseline: +0.4%

Memory: ✅ 38.889MB (SLO: <46.500MB 📉 -16.4%) vs baseline: +5.2%


✅ update-name

Time: ✅ 38.910ms (SLO: <45.150ms 📉 -13.8%) vs baseline: -0.2%

Memory: ✅ 41.038MB (SLO: <47.000MB 📉 -12.7%) vs baseline: +4.7%


🟡 packagesupdateimporteddependencies - 24/24 (1 unstable)

✅ import_many

Time: ✅ 167.235µs (SLO: <170.000µs 🟡 -1.6%) vs baseline: -1.7%

Memory: ✅ 41.026MB (SLO: <46.000MB 📉 -10.8%) vs baseline: +4.6%


✅ import_many_cached

Time: ✅ 134.186µs (SLO: <170.000µs 📉 -21.1%) vs baseline: +1.5%

Memory: ✅ 41.090MB (SLO: <46.000MB 📉 -10.7%) vs baseline: +5.1%


✅ import_many_stdlib

Time: ✅ 1.255ms (SLO: <1.750ms 📉 -28.3%) vs baseline: +0.3%

Memory: ✅ 41.435MB (SLO: <46.000MB -9.9%) vs baseline: +5.3%


⚠️ import_many_stdlib_cached

Time: ⚠️ 0.630ms (SLO: <1.100ms 📉 -42.7%) vs baseline: +1.1%

Memory: ✅ 41.271MB (SLO: <46.000MB 📉 -10.3%) vs baseline: +4.9%


✅ import_many_unknown

Time: ✅ 894.237µs (SLO: <960.000µs -6.9%) vs baseline: +0.2%

Memory: ✅ 41.238MB (SLO: <46.000MB 📉 -10.4%) vs baseline: +4.9%


✅ import_many_unknown_cached

Time: ✅ 846.151µs (SLO: <870.000µs -2.7%) vs baseline: -0.5%

Memory: ✅ 41.419MB (SLO: <46.000MB -10.0%) vs baseline: +5.0%


✅ import_one

Time: ✅ 23.073µs (SLO: <30.000µs 📉 -23.1%) vs baseline: +0.7%

Memory: ✅ 41.085MB (SLO: <46.000MB 📉 -10.7%) vs baseline: +5.1%


✅ import_one_cache

Time: ✅ 8.955µs (SLO: <10.000µs 📉 -10.5%) vs baseline: -0.3%

Memory: ✅ 41.141MB (SLO: <46.000MB 📉 -10.6%) vs baseline: +5.4%


✅ import_one_stdlib

Time: ✅ 21.913µs (SLO: <30.000µs 📉 -27.0%) vs baseline: +0.5%

Memory: ✅ 41.187MB (SLO: <46.000MB 📉 -10.5%) vs baseline: +5.2%


✅ import_one_stdlib_cache

Time: ✅ 8.965µs (SLO: <10.000µs 📉 -10.4%) vs baseline: -0.2%

Memory: ✅ 40.933MB (SLO: <46.000MB 📉 -11.0%) vs baseline: +4.3%


✅ import_one_unknown

Time: ✅ 50.045µs (SLO: <51.000µs 🟡 -1.9%) vs baseline: +0.2%

Memory: ✅ 41.037MB (SLO: <46.000MB 📉 -10.8%) vs baseline: +4.3%


✅ import_one_unknown_cache

Time: ✅ 9.011µs (SLO: <10.000µs -9.9%) vs baseline: +0.5%

Memory: ✅ 41.042MB (SLO: <43.000MB -4.6%) vs baseline: +4.6%


🟡 recursivecomputation - 8/8

✅ deep

Time: ✅ 312.763ms (SLO: <320.950ms -2.6%) vs baseline: +0.4%

Memory: ✅ 37.238MB (SLO: <38.750MB -3.9%) vs baseline: +5.3%


✅ deep-profiled

Time: ✅ 332.627ms (SLO: <359.150ms -7.4%) vs baseline: -0.7%

Memory: ✅ 43.745MB (SLO: <46.000MB -4.9%) vs baseline: +5.5%


✅ medium

Time: ✅ 7.335ms (SLO: <7.450ms 🟡 -1.5%) vs baseline: -0.3%

Memory: ✅ 36.176MB (SLO: <38.000MB -4.8%) vs baseline: +4.6%


✅ shallow

Time: ✅ 1.035ms (SLO: <1.050ms 🟡 -1.4%) vs baseline: +1.4%

Memory: ✅ 36.235MB (SLO: <38.000MB -4.6%) vs baseline: +4.8%


🟡 span - 26/26

✅ add-event

Time: ✅ 20.501ms (SLO: <22.500ms -8.9%) vs baseline: +0.2%

Memory: ✅ 38.574MB (SLO: <53.000MB 📉 -27.2%) vs baseline: +4.8%


✅ add-metrics

Time: ✅ 90.190ms (SLO: <93.500ms -3.5%) vs baseline: +0.3%

Memory: ✅ 42.998MB (SLO: <53.000MB 📉 -18.9%) vs baseline: +4.9%


✅ add-tags

Time: ✅ 135.876ms (SLO: <155.000ms 📉 -12.3%) vs baseline: ~same

Memory: ✅ 42.885MB (SLO: <53.000MB 📉 -19.1%) vs baseline: +5.0%


✅ get-context

Time: ✅ 17.943ms (SLO: <20.500ms 📉 -12.5%) vs baseline: -0.3%

Memory: ✅ 38.122MB (SLO: <53.000MB 📉 -28.1%) vs baseline: +4.6%


✅ is-recording

Time: ✅ 18.177ms (SLO: <20.500ms 📉 -11.3%) vs baseline: +0.3%

Memory: ✅ 38.122MB (SLO: <53.000MB 📉 -28.1%) vs baseline: +4.6%


✅ record-exception

Time: ✅ 41.995ms (SLO: <42.000ms 🟡 ~same) vs baseline: +0.6%

Memory: ✅ 38.948MB (SLO: <53.000MB 📉 -26.5%) vs baseline: +4.8%


✅ set-status

Time: ✅ 19.623ms (SLO: <22.000ms 📉 -10.8%) vs baseline: +0.3%

Memory: ✅ 38.063MB (SLO: <53.000MB 📉 -28.2%) vs baseline: +4.5%


✅ start

Time: ✅ 18.970ms (SLO: <20.500ms -7.5%) vs baseline: +6.2%

Memory: ✅ 38.162MB (SLO: <53.000MB 📉 -28.0%) vs baseline: +4.8%


✅ start-finish

Time: ✅ 57.712ms (SLO: <58.500ms 🟡 -1.3%) vs baseline: -0.4%

Memory: ✅ 36.274MB (SLO: <38.000MB -4.5%) vs baseline: +5.4%


✅ start-finish-telemetry

Time: ✅ 59.360ms (SLO: <60.000ms 🟡 -1.1%) vs baseline: ~same

Memory: ✅ 36.235MB (SLO: <38.000MB -4.6%) vs baseline: +5.1%


✅ start-finish-traceid128

Time: ✅ 60.352ms (SLO: <62.000ms -2.7%) vs baseline: +0.2%

Memory: ✅ 36.156MB (SLO: <38.000MB -4.9%) vs baseline: +4.7%


✅ start-traceid128

Time: ✅ 17.973ms (SLO: <22.500ms 📉 -20.1%) vs baseline: +0.8%

Memory: ✅ 38.103MB (SLO: <53.000MB 📉 -28.1%) vs baseline: +4.6%


✅ update-name

Time: ✅ 18.595ms (SLO: <22.000ms 📉 -15.5%) vs baseline: ~same

Memory: ✅ 38.139MB (SLO: <53.000MB 📉 -28.0%) vs baseline: +4.7%


🟡 tracer - 6/6

✅ large

Time: ✅ 33.075ms (SLO: <33.950ms -2.6%) vs baseline: +0.5%

Memory: ✅ 37.415MB (SLO: <39.250MB -4.7%) vs baseline: +4.8%


✅ medium

Time: ✅ 3.174ms (SLO: <3.500ms -9.3%) vs baseline: -0.3%

Memory: ✅ 36.156MB (SLO: <38.750MB -6.7%) vs baseline: +4.8%


✅ small

Time: ✅ 389.261µs (SLO: <390.000µs 🟡 -0.2%) vs baseline: +4.8%

Memory: ✅ 36.215MB (SLO: <38.750MB -6.5%) vs baseline: +4.8%

⚠️ Unstable Tests (1 suite)
⚠️ coreapiscenario - 10/10 (1 unstable)

⚠️ context_with_data_listeners

Time: ⚠️ 13.595µs (SLO: <20.000µs 📉 -32.0%) vs baseline: ~same

Memory: ✅ 36.117MB (SLO: <38.000MB -5.0%) vs baseline: +4.6%


✅ context_with_data_no_listeners

Time: ✅ 3.606µs (SLO: <10.000µs 📉 -63.9%) vs baseline: -0.4%

Memory: ✅ 36.156MB (SLO: <38.000MB -4.9%) vs baseline: +5.0%


✅ get_item_exists

Time: ✅ 0.582µs (SLO: <10.000µs 📉 -94.2%) vs baseline: +0.6%

Memory: ✅ 36.156MB (SLO: <38.000MB -4.9%) vs baseline: +4.7%


✅ get_item_missing

Time: ✅ 0.636µs (SLO: <10.000µs 📉 -93.6%) vs baseline: -0.2%

Memory: ✅ 36.176MB (SLO: <38.000MB -4.8%) vs baseline: +4.9%


✅ set_item

Time: ✅ 24.558µs (SLO: <30.000µs 📉 -18.1%) vs baseline: -1.6%

Memory: ✅ 36.215MB (SLO: <38.000MB -4.7%) vs baseline: +4.9%

✅ All Tests Passing (18 suites)
codeprovenancefork - 2/2

✅ fork-10

Time: ✅ 2.185s (SLO: <2.400s -9.0%) vs baseline: +1.9%

Memory: ✅ 17.439MB (SLO: <20.000MB 📉 -12.8%) vs baseline: +5.0%


errortrackingdjangosimple - 6/6

✅ errortracking-enabled-all

Time: ✅ 16.279ms (SLO: <19.850ms 📉 -18.0%) vs baseline: +0.2%

Memory: ✅ 71.349MB (SLO: <75.000MB -4.9%) vs baseline: +4.8%


✅ errortracking-enabled-user

Time: ✅ 16.275ms (SLO: <19.400ms 📉 -16.1%) vs baseline: +0.1%

Memory: ✅ 71.329MB (SLO: <75.000MB -4.9%) vs baseline: +4.9%


✅ tracer-enabled

Time: ✅ 17.450ms (SLO: <19.450ms 📉 -10.3%) vs baseline: +0.3%

Memory: ✅ 71.270MB (SLO: <75.000MB -5.0%) vs baseline: +5.0%


errortrackingflasksqli - 6/6

✅ errortracking-enabled-all

Time: ✅ 2.117ms (SLO: <2.300ms -8.0%) vs baseline: -0.2%

Memory: ✅ 58.196MB (SLO: <60.000MB -3.0%) vs baseline: +4.6%


✅ errortracking-enabled-user

Time: ✅ 2.125ms (SLO: <2.250ms -5.6%) vs baseline: +0.3%

Memory: ✅ 58.334MB (SLO: <60.000MB -2.8%) vs baseline: +4.5%


✅ tracer-enabled

Time: ✅ 2.118ms (SLO: <2.300ms -7.9%) vs baseline: ~same

Memory: ✅ 58.432MB (SLO: <60.000MB -2.6%) vs baseline: +5.0%


flasksimple - 16/16

✅ appsec-get

Time: ✅ 3.385ms (SLO: <4.750ms 📉 -28.7%) vs baseline: -0.1%

Memory: ✅ 58.672MB (SLO: <66.500MB 📉 -11.8%) vs baseline: +4.9%


✅ appsec-post

Time: ✅ 2.902ms (SLO: <6.750ms 📉 -57.0%) vs baseline: +0.2%

Memory: ✅ 58.730MB (SLO: <66.500MB 📉 -11.7%) vs baseline: +5.2%


✅ appsec-telemetry

Time: ✅ 3.431ms (SLO: <4.750ms 📉 -27.8%) vs baseline: +1.3%

Memory: ✅ 58.632MB (SLO: <66.500MB 📉 -11.8%) vs baseline: +4.8%


✅ debugger

Time: ✅ 1.878ms (SLO: <2.000ms -6.1%) vs baseline: -0.2%

Memory: ✅ 49.254MB (SLO: <51.500MB -4.4%) vs baseline: +4.8%


✅ iast-get

Time: ✅ 1.874ms (SLO: <2.000ms -6.3%) vs baseline: +0.4%

Memory: ✅ 46.069MB (SLO: <49.000MB -6.0%) vs baseline: +5.0%


✅ profiler

Time: ✅ 1.921ms (SLO: <2.100ms -8.5%) vs baseline: -0.3%

Memory: ✅ 52.026MB (SLO: <53.500MB -2.8%) vs baseline: +4.9%


✅ resource-renaming

Time: ✅ 3.377ms (SLO: <3.650ms -7.5%) vs baseline: +0.2%

Memory: ✅ 58.633MB (SLO: <60.000MB -2.3%) vs baseline: +4.9%


✅ tracer

Time: ✅ 3.392ms (SLO: <3.650ms -7.1%) vs baseline: +0.3%

Memory: ✅ 58.633MB (SLO: <60.000MB -2.3%) vs baseline: +4.6%


flasksqli - 6/6

✅ appsec-enabled

Time: ✅ 2.110ms (SLO: <4.200ms 📉 -49.8%) vs baseline: +0.2%

Memory: ✅ 58.511MB (SLO: <66.000MB 📉 -11.3%) vs baseline: +4.6%


✅ iast-enabled

Time: ✅ 2.122ms (SLO: <2.800ms 📉 -24.2%) vs baseline: +0.2%

Memory: ✅ 58.707MB (SLO: <62.500MB -6.1%) vs baseline: +5.0%


✅ tracer-enabled

Time: ✅ 2.114ms (SLO: <2.250ms -6.0%) vs baseline: +0.3%

Memory: ✅ 58.668MB (SLO: <60.000MB -2.2%) vs baseline: +5.1%


forktime - 4/4

✅ baseline

Time: ✅ 1.936ms (SLO: <3.000ms 📉 -35.5%) vs baseline: +4.0%

Memory: ✅ 29.275MB (SLO: <33.000MB 📉 -11.3%) vs baseline: +5.0%


✅ configured

Time: ✅ 9.372ms (SLO: <17.000ms 📉 -44.9%) vs baseline: ~same

Memory: ✅ 58.616MB (SLO: <60.000MB -2.3%) vs baseline: +4.8%


httppropagationextract - 60/60

✅ all_styles_all_headers

Time: ✅ 80.831µs (SLO: <100.000µs 📉 -19.2%) vs baseline: +4.7%

Memory: ✅ 36.707MB (SLO: <38.000MB -3.4%) vs baseline: +5.0%


✅ b3_headers

Time: ✅ 12.927µs (SLO: <20.000µs 📉 -35.4%) vs baseline: ~same

Memory: ✅ 36.274MB (SLO: <38.000MB -4.5%) vs baseline: +4.2%


✅ b3_single_headers

Time: ✅ 11.948µs (SLO: <20.000µs 📉 -40.3%) vs baseline: ~same

Memory: ✅ 36.510MB (SLO: <38.000MB -3.9%) vs baseline: +4.8%


✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match

Time: ✅ 60.277µs (SLO: <80.000µs 📉 -24.7%) vs baseline: +0.3%

Memory: ✅ 36.766MB (SLO: <38.000MB -3.2%) vs baseline: +5.2%


✅ datadog_tracecontext_tracestate_propagated_on_trace_id_match

Time: ✅ 63.914µs (SLO: <80.000µs 📉 -20.1%) vs baseline: ~same

Memory: ✅ 36.726MB (SLO: <38.000MB -3.4%) vs baseline: +4.7%


✅ empty_headers

Time: ✅ 1.298µs (SLO: <10.000µs 📉 -87.0%) vs baseline: ~same

Memory: ✅ 36.333MB (SLO: <38.000MB -4.4%) vs baseline: +4.5%


✅ full_t_id_datadog_headers

Time: ✅ 21.686µs (SLO: <30.000µs 📉 -27.7%) vs baseline: -0.3%

Memory: ✅ 36.785MB (SLO: <38.000MB -3.2%) vs baseline: +5.1%


✅ invalid_priority_header

Time: ✅ 5.925µs (SLO: <10.000µs 📉 -40.7%) vs baseline: +0.6%

Memory: ✅ 36.490MB (SLO: <38.000MB -4.0%) vs baseline: +5.1%


✅ invalid_span_id_header

Time: ✅ 5.922µs (SLO: <10.000µs 📉 -40.8%) vs baseline: +0.7%

Memory: ✅ 36.746MB (SLO: <38.000MB -3.3%) vs baseline: +6.0%


✅ invalid_tags_header

Time: ✅ 5.901µs (SLO: <10.000µs 📉 -41.0%) vs baseline: -0.3%

Memory: ✅ 36.608MB (SLO: <38.000MB -3.7%) vs baseline: +4.9%


✅ invalid_trace_id_header

Time: ✅ 5.921µs (SLO: <10.000µs 📉 -40.8%) vs baseline: +0.5%

Memory: ✅ 36.451MB (SLO: <38.000MB -4.1%) vs baseline: +5.1%


✅ large_header_no_matches

Time: ✅ 27.052µs (SLO: <30.000µs -9.8%) vs baseline: +0.3%

Memory: ✅ 36.431MB (SLO: <38.000MB -4.1%) vs baseline: +4.7%


✅ large_valid_headers_all

Time: ✅ 28.136µs (SLO: <40.000µs 📉 -29.7%) vs baseline: -0.6%

Memory: ✅ 36.864MB (SLO: <38.000MB -3.0%) vs baseline: +6.4%


✅ medium_header_no_matches

Time: ✅ 9.256µs (SLO: <20.000µs 📉 -53.7%) vs baseline: +0.6%

Memory: ✅ 36.549MB (SLO: <38.000MB -3.8%) vs baseline: +5.0%


✅ medium_valid_headers_all

Time: ✅ 10.688µs (SLO: <20.000µs 📉 -46.6%) vs baseline: ~same

Memory: ✅ 36.785MB (SLO: <38.000MB -3.2%) vs baseline: +5.9%


✅ none_propagation_style

Time: ✅ 1.394µs (SLO: <10.000µs 📉 -86.1%) vs baseline: +0.7%

Memory: ✅ 36.313MB (SLO: <38.000MB -4.4%) vs baseline: +4.8%


✅ tracecontext_headers

Time: ✅ 32.750µs (SLO: <40.000µs 📉 -18.1%) vs baseline: -0.3%

Memory: ✅ 36.648MB (SLO: <38.000MB -3.6%) vs baseline: +4.5%


✅ valid_headers_all

Time: ✅ 5.913µs (SLO: <10.000µs 📉 -40.9%) vs baseline: +0.4%

Memory: ✅ 36.333MB (SLO: <38.000MB -4.4%) vs baseline: +4.6%


✅ valid_headers_basic

Time: ✅ 5.485µs (SLO: <10.000µs 📉 -45.1%) vs baseline: -0.3%

Memory: ✅ 36.372MB (SLO: <38.000MB -4.3%) vs baseline: +5.0%


✅ wsgi_empty_headers

Time: ✅ 1.291µs (SLO: <10.000µs 📉 -87.1%) vs baseline: -0.3%

Memory: ✅ 36.451MB (SLO: <38.000MB -4.1%) vs baseline: +4.9%


✅ wsgi_invalid_priority_header

Time: ✅ 5.958µs (SLO: <10.000µs 📉 -40.4%) vs baseline: +0.2%

Memory: ✅ 36.451MB (SLO: <38.000MB -4.1%) vs baseline: +4.3%


✅ wsgi_invalid_span_id_header

Time: ✅ 1.295µs (SLO: <10.000µs 📉 -87.0%) vs baseline: +0.2%

Memory: ✅ 36.569MB (SLO: <38.000MB -3.8%) vs baseline: +5.0%


✅ wsgi_invalid_tags_header

Time: ✅ 5.958µs (SLO: <10.000µs 📉 -40.4%) vs baseline: ~same

Memory: ✅ 36.864MB (SLO: <38.000MB -3.0%) vs baseline: +5.7%


✅ wsgi_invalid_trace_id_header

Time: ✅ 5.957µs (SLO: <10.000µs 📉 -40.4%) vs baseline: -0.1%

Memory: ✅ 36.431MB (SLO: <38.000MB -4.1%) vs baseline: +5.0%


✅ wsgi_large_header_no_matches

Time: ✅ 28.069µs (SLO: <40.000µs 📉 -29.8%) vs baseline: ~same

Memory: ✅ 36.628MB (SLO: <38.000MB -3.6%) vs baseline: +4.9%


✅ wsgi_large_valid_headers_all

Time: ✅ 29.286µs (SLO: <40.000µs 📉 -26.8%) vs baseline: +0.7%

Memory: ✅ 36.785MB (SLO: <38.000MB -3.2%) vs baseline: +5.1%


✅ wsgi_medium_header_no_matches

Time: ✅ 9.469µs (SLO: <20.000µs 📉 -52.7%) vs baseline: -0.2%

Memory: ✅ 36.687MB (SLO: <38.000MB -3.5%) vs baseline: +4.9%


✅ wsgi_medium_valid_headers_all

Time: ✅ 11.038µs (SLO: <20.000µs 📉 -44.8%) vs baseline: +1.3%

Memory: ✅ 36.707MB (SLO: <38.000MB -3.4%) vs baseline: +4.9%


✅ wsgi_valid_headers_all

Time: ✅ 5.953µs (SLO: <10.000µs 📉 -40.5%) vs baseline: +0.1%

Memory: ✅ 36.648MB (SLO: <38.000MB -3.6%) vs baseline: +5.9%


✅ wsgi_valid_headers_basic

Time: ✅ 5.517µs (SLO: <10.000µs 📉 -44.8%) vs baseline: +0.6%

Memory: ✅ 36.313MB (SLO: <38.000MB -4.4%) vs baseline: +4.1%


httppropagationinject - 16/16

✅ ids_only

Time: ✅ 21.125µs (SLO: <30.000µs 📉 -29.6%) vs baseline: +4.9%

Memory: ✅ 36.333MB (SLO: <38.000MB -4.4%) vs baseline: +5.0%


✅ with_all

Time: ✅ 27.176µs (SLO: <40.000µs 📉 -32.1%) vs baseline: +1.0%

Memory: ✅ 36.313MB (SLO: <38.000MB -4.4%) vs baseline: +4.7%


✅ with_dd_origin

Time: ✅ 24.030µs (SLO: <30.000µs 📉 -19.9%) vs baseline: ~same

Memory: ✅ 36.353MB (SLO: <38.000MB -4.3%) vs baseline: +4.9%


✅ with_priority_and_origin

Time: ✅ 23.314µs (SLO: <40.000µs 📉 -41.7%) vs baseline: ~same

Memory: ✅ 36.235MB (SLO: <38.000MB -4.6%) vs baseline: +4.9%


✅ with_sampling_priority

Time: ✅ 20.026µs (SLO: <30.000µs 📉 -33.2%) vs baseline: ~same

Memory: ✅ 36.431MB (SLO: <38.000MB -4.1%) vs baseline: +5.4%


✅ with_tags

Time: ✅ 25.098µs (SLO: <40.000µs 📉 -37.3%) vs baseline: +0.1%

Memory: ✅ 36.235MB (SLO: <38.000MB -4.6%) vs baseline: +4.5%


✅ with_tags_invalid

Time: ✅ 26.351µs (SLO: <40.000µs 📉 -34.1%) vs baseline: -0.8%

Memory: ✅ 36.353MB (SLO: <38.000MB -4.3%) vs baseline: +4.9%


✅ with_tags_max_size

Time: ✅ 25.672µs (SLO: <40.000µs 📉 -35.8%) vs baseline: +0.4%

Memory: ✅ 36.235MB (SLO: <38.000MB -4.6%) vs baseline: +4.9%


iastaspectssplit - 12/12

✅ rsplit_aspect

Time: ✅ 153.414µs (SLO: <250.000µs 📉 -38.6%) vs baseline: +0.7%

Memory: ✅ 43.916MB (SLO: <46.000MB -4.5%) vs baseline: +4.8%


✅ rsplit_noaspect

Time: ✅ 161.285µs (SLO: <250.000µs 📉 -35.5%) vs baseline: +1.4%

Memory: ✅ 43.940MB (SLO: <46.000MB -4.5%) vs baseline: +4.9%


✅ split_aspect

Time: ✅ 146.980µs (SLO: <250.000µs 📉 -41.2%) vs baseline: +0.1%

Memory: ✅ 43.867MB (SLO: <46.000MB -4.6%) vs baseline: +4.8%


✅ split_noaspect

Time: ✅ 150.491µs (SLO: <250.000µs 📉 -39.8%) vs baseline: +1.0%

Memory: ✅ 43.913MB (SLO: <46.000MB -4.5%) vs baseline: +5.1%


✅ splitlines_aspect

Time: ✅ 143.927µs (SLO: <250.000µs 📉 -42.4%) vs baseline: -1.4%

Memory: ✅ 43.853MB (SLO: <46.000MB -4.7%) vs baseline: +4.7%


✅ splitlines_noaspect

Time: ✅ 150.836µs (SLO: <250.000µs 📉 -39.7%) vs baseline: +0.8%

Memory: ✅ 43.845MB (SLO: <46.000MB -4.7%) vs baseline: +4.5%


iastpropagation - 8/8

✅ no-propagation

Time: ✅ 48.378µs (SLO: <60.000µs 📉 -19.4%) vs baseline: -0.1%

Memory: ✅ 40.796MB (SLO: <42.000MB -2.9%) vs baseline: +4.9%


✅ propagation_enabled

Time: ✅ 136.245µs (SLO: <190.000µs 📉 -28.3%) vs baseline: -0.7%

Memory: ✅ 41.012MB (SLO: <42.000MB -2.4%) vs baseline: +4.9%


✅ propagation_enabled_100

Time: ✅ 1.576ms (SLO: <2.300ms 📉 -31.5%) vs baseline: +0.8%

Memory: ✅ 41.012MB (SLO: <42.000MB -2.4%) vs baseline: +4.9%


✅ propagation_enabled_1000

Time: ✅ 29.412ms (SLO: <34.550ms 📉 -14.9%) vs baseline: +0.8%

Memory: ✅ 40.894MB (SLO: <42.000MB -2.6%) vs baseline: +4.4%


otelsdkspan - 24/24

✅ add-event

Time: ✅ 40.591ms (SLO: <42.000ms -3.4%) vs baseline: +0.2%

Memory: ✅ 39.086MB (SLO: <40.750MB -4.1%) vs baseline: +4.9%


✅ add-link

Time: ✅ 36.558ms (SLO: <38.550ms -5.2%) vs baseline: +0.8%

Memory: ✅ 39.145MB (SLO: <40.750MB -3.9%) vs baseline: +5.3%


✅ add-metrics

Time: ✅ 220.991ms (SLO: <232.000ms -4.7%) vs baseline: -0.4%

Memory: ✅ 38.889MB (SLO: <40.750MB -4.6%) vs baseline: +4.1%


✅ add-tags

Time: ✅ 211.535ms (SLO: <221.600ms -4.5%) vs baseline: -0.2%

Memory: ✅ 39.125MB (SLO: <40.750MB -4.0%) vs baseline: +5.1%


✅ get-context

Time: ✅ 29.170ms (SLO: <31.300ms -6.8%) vs baseline: +0.2%

Memory: ✅ 39.046MB (SLO: <40.750MB -4.2%) vs baseline: +4.7%


✅ is-recording

Time: ✅ 29.285ms (SLO: <31.000ms -5.5%) vs baseline: +1.3%

Memory: ✅ 39.086MB (SLO: <40.750MB -4.1%) vs baseline: +5.1%


✅ record-exception

Time: ✅ 63.547ms (SLO: <65.850ms -3.5%) vs baseline: +0.5%

Memory: ✅ 38.987MB (SLO: <40.750MB -4.3%) vs baseline: +4.7%


✅ set-status

Time: ✅ 31.924ms (SLO: <34.150ms -6.5%) vs baseline: +0.5%

Memory: ✅ 39.066MB (SLO: <40.750MB -4.1%) vs baseline: +4.6%


✅ start

Time: ✅ 29.398ms (SLO: <30.150ms -2.5%) vs baseline: +2.5%

Memory: ✅ 38.889MB (SLO: <40.750MB -4.6%) vs baseline: +4.5%


✅ start-finish

Time: ✅ 33.946ms (SLO: <35.350ms -4.0%) vs baseline: +0.4%

Memory: ✅ 39.145MB (SLO: <40.750MB -3.9%) vs baseline: +5.1%


✅ start-finish-telemetry

Time: ✅ 34.027ms (SLO: <35.450ms -4.0%) vs baseline: +0.5%

Memory: ✅ 39.086MB (SLO: <40.750MB -4.1%) vs baseline: +4.9%


✅ update-name

Time: ✅ 31.019ms (SLO: <33.400ms -7.1%) vs baseline: -0.3%

Memory: ✅ 39.027MB (SLO: <40.750MB -4.2%) vs baseline: +4.8%


packagespackageforrootmodulemapping - 4/4

✅ cache_off

Time: ✅ 343.196ms (SLO: <354.300ms -3.1%) vs baseline: +0.2%

Memory: ✅ 42.212MB (SLO: <46.000MB -8.2%) vs baseline: +5.0%


✅ cache_on

Time: ✅ 0.386µs (SLO: <10.000µs 📉 -96.1%) vs baseline: -1.2%

Memory: ✅ 41.750MB (SLO: <46.000MB -9.2%) vs baseline: +5.9%


rand - 2/2

✅ rand128bits

Time: ✅ 0.181µs (SLO: <21.000µs 📉 -99.1%) vs baseline: -0.4%


✅ rand64bits

Time: ✅ 0.122µs (SLO: <15.000µs 📉 -99.2%) vs baseline: +0.1%


ratelimiter - 12/12

✅ defaults

Time: ✅ 2.358µs (SLO: <10.000µs 📉 -76.4%) vs baseline: +0.3%

Memory: ✅ 36.530MB (SLO: <38.000MB -3.9%) vs baseline: +4.7%


✅ high_rate_limit

Time: ✅ 2.425µs (SLO: <10.000µs 📉 -75.8%) vs baseline: +0.6%

Memory: ✅ 36.589MB (SLO: <38.000MB -3.7%) vs baseline: +4.7%


✅ long_window

Time: ✅ 2.362µs (SLO: <10.000µs 📉 -76.4%) vs baseline: +0.1%

Memory: ✅ 36.471MB (SLO: <38.000MB -4.0%) vs baseline: +4.4%


✅ low_rate_limit

Time: ✅ 2.381µs (SLO: <10.000µs 📉 -76.2%) vs baseline: +0.6%

Memory: ✅ 36.569MB (SLO: <38.000MB -3.8%) vs baseline: +4.8%


✅ no_rate_limit

Time: ✅ 0.835µs (SLO: <10.000µs 📉 -91.7%) vs baseline: +0.6%

Memory: ✅ 36.471MB (SLO: <38.000MB -4.0%) vs baseline: +4.4%


✅ short_window

Time: ✅ 2.503µs (SLO: <10.000µs 📉 -75.0%) vs baseline: -0.5%

Memory: ✅ 36.569MB (SLO: <38.000MB -3.8%) vs baseline: +5.0%


samplingrules - 8/8

✅ average_match

Time: ✅ 148.176µs (SLO: <200.000µs 📉 -25.9%) vs baseline: +1.1%

Memory: ✅ 36.176MB (SLO: <38.000MB -4.8%) vs baseline: +4.7%


✅ high_match

Time: ✅ 167.584µs (SLO: <200.000µs 📉 -16.2%) vs baseline: +0.4%

Memory: ✅ 36.215MB (SLO: <38.000MB -4.7%) vs baseline: +4.8%


✅ low_match

Time: ✅ 122.344µs (SLO: <130.000µs -5.9%) vs baseline: -0.5%

Memory: ✅ 619.278MB (SLO: <780.000MB 📉 -20.6%) vs baseline: +4.9%


✅ very_low_match

Time: ✅ 2.651ms (SLO: <4.000ms 📉 -33.7%) vs baseline: -0.7%

Memory: ✅ 73.591MB (SLO: <85.000MB 📉 -13.4%) vs baseline: +4.8%


sethttpmeta - 32/32

✅ all-disabled

Time: ✅ 10.684µs (SLO: <20.000µs 📉 -46.6%) vs baseline: +0.9%

Memory: ✅ 37.356MB (SLO: <38.750MB -3.6%) vs baseline: +4.8%


✅ all-enabled

Time: ✅ 40.131µs (SLO: <50.000µs 📉 -19.7%) vs baseline: +1.8%

Memory: ✅ 37.356MB (SLO: <38.750MB -3.6%) vs baseline: +4.5%


✅ collectipvariant_exists

Time: ✅ 40.184µs (SLO: <50.000µs 📉 -19.6%) vs baseline: +0.8%

Memory: ✅ 37.650MB (SLO: <38.750MB -2.8%) vs baseline: +6.4%


✅ no-collectipvariant

Time: ✅ 39.491µs (SLO: <50.000µs 📉 -21.0%) vs baseline: +0.1%

Memory: ✅ 37.297MB (SLO: <38.750MB -3.8%) vs baseline: +5.2%


✅ no-useragentvariant

Time: ✅ 38.054µs (SLO: <50.000µs 📉 -23.9%) vs baseline: +0.4%

Memory: ✅ 37.238MB (SLO: <38.750MB -3.9%) vs baseline: +4.1%


✅ obfuscation-no-query

Time: ✅ 40.008µs (SLO: <50.000µs 📉 -20.0%) vs baseline: -0.1%

Memory: ✅ 37.179MB (SLO: <38.750MB -4.1%) vs baseline: +5.4%


✅ obfuscation-regular-case-explicit-query

Time: ✅ 75.737µs (SLO: <90.000µs 📉 -15.8%) vs baseline: +0.3%

Memory: ✅ 37.513MB (SLO: <38.750MB -3.2%) vs baseline: +4.9%


✅ obfuscation-regular-case-implicit-query

Time: ✅ 76.338µs (SLO: <90.000µs 📉 -15.2%) vs baseline: +0.3%

Memory: ✅ 37.631MB (SLO: <38.750MB -2.9%) vs baseline: +5.0%


✅ obfuscation-send-querystring-disabled

Time: ✅ 154.459µs (SLO: <170.000µs -9.1%) vs baseline: ~same

Memory: ✅ 37.454MB (SLO: <38.750MB -3.3%) vs baseline: +4.7%


✅ obfuscation-worst-case-explicit-query

Time: ✅ 148.943µs (SLO: <160.000µs -6.9%) vs baseline: +0.1%

Memory: ✅ 37.513MB (SLO: <38.750MB -3.2%) vs baseline: +5.0%


✅ obfuscation-worst-case-implicit-query

Time: ✅ 155.044µs (SLO: <170.000µs -8.8%) vs baseline: ~same

Memory: ✅ 37.611MB (SLO: <38.750MB -2.9%) vs baseline: +5.1%


✅ useragentvariant_exists_1

Time: ✅ 38.958µs (SLO: <50.000µs 📉 -22.1%) vs baseline: +0.7%

Memory: ✅ 37.336MB (SLO: <38.750MB -3.6%) vs baseline: +4.5%


✅ useragentvariant_exists_2

Time: ✅ 40.038µs (SLO: <50.000µs 📉 -19.9%) vs baseline: +0.2%

Memory: ✅ 37.473MB (SLO: <38.750MB -3.3%) vs baseline: +5.5%


✅ useragentvariant_exists_3

Time: ✅ 39.190µs (SLO: <50.000µs 📉 -21.6%) vs baseline: -0.8%

Memory: ✅ 37.552MB (SLO: <38.750MB -3.1%) vs baseline: +5.6%


✅ useragentvariant_not_exists_1

Time: ✅ 38.702µs (SLO: <50.000µs 📉 -22.6%) vs baseline: ~same

Memory: ✅ 37.257MB (SLO: <38.750MB -3.9%) vs baseline: +4.8%


✅ useragentvariant_not_exists_2

Time: ✅ 38.997µs (SLO: <50.000µs 📉 -22.0%) vs baseline: +0.6%

Memory: ✅ 37.572MB (SLO: <38.750MB -3.0%) vs baseline: +5.9%


telemetryaddmetric - 30/30

✅ 1-count-metric-1-times

Time: ✅ 2.372µs (SLO: <20.000µs 📉 -88.1%) vs baseline: +8.9%

Memory: ✅ 36.608MB (SLO: <38.000MB -3.7%) vs baseline: +5.3%


✅ 1-count-metrics-100-times

Time: ✅ 155.552µs (SLO: <220.000µs 📉 -29.3%) vs baseline: -0.7%

Memory: ✅ 36.490MB (SLO: <38.000MB -4.0%) vs baseline: +4.5%


✅ 1-distribution-metric-1-times

Time: ✅ 2.495µs (SLO: <20.000µs 📉 -87.5%) vs baseline: +0.9%

Memory: ✅ 36.628MB (SLO: <38.000MB -3.6%) vs baseline: +5.0%


✅ 1-distribution-metrics-100-times

Time: ✅ 170.638µs (SLO: <230.000µs 📉 -25.8%) vs baseline: +0.4%

Memory: ✅ 36.569MB (SLO: <38.000MB -3.8%) vs baseline: +4.7%


✅ 1-gauge-metric-1-times

Time: ✅ 2.358µs (SLO: <20.000µs 📉 -88.2%) vs baseline: -0.4%

Memory: ✅ 36.628MB (SLO: <38.000MB -3.6%) vs baseline: +4.8%


✅ 1-gauge-metrics-100-times

Time: ✅ 170.919µs (SLO: <190.000µs 📉 -10.0%) vs baseline: -0.1%

Memory: ✅ 36.648MB (SLO: <38.000MB -3.6%) vs baseline: +4.9%


✅ 1-rate-metric-1-times

Time: ✅ 2.306µs (SLO: <20.000µs 📉 -88.5%) vs baseline: ~same

Memory: ✅ 36.549MB (SLO: <38.000MB -3.8%) vs baseline: +4.8%


✅ 1-rate-metrics-100-times

Time: ✅ 171.276µs (SLO: <250.000µs 📉 -31.5%) vs baseline: -1.6%

Memory: ✅ 36.589MB (SLO: <38.000MB -3.7%) vs baseline: +4.2%


✅ 100-count-metrics-100-times

Time: ✅ 15.760ms (SLO: <22.000ms 📉 -28.4%) vs baseline: -0.2%

Memory: ✅ 36.215MB (SLO: <38.000MB -4.7%) vs baseline: +5.3%


✅ 100-distribution-metrics-100-times

Time: ✅ 1.781ms (SLO: <2.550ms 📉 -30.2%) vs baseline: +0.4%

Memory: ✅ 36.510MB (SLO: <38.000MB -3.9%) vs baseline: +4.9%


✅ 100-gauge-metrics-100-times

Time: ✅ 1.743ms (SLO: <1.850ms -5.8%) vs baseline: -1.2%

Memory: ✅ 36.313MB (SLO: <38.000MB -4.4%) vs baseline: +5.1%


✅ 100-rate-metrics-100-times

Time: ✅ 1.755ms (SLO: <2.550ms 📉 -31.2%) vs baseline: -0.6%

Memory: ✅ 36.078MB (SLO: <38.000MB -5.1%) vs baseline: +4.7%


✅ flush-1-metric

Time: ✅ 3.537µs (SLO: <20.000µs 📉 -82.3%) vs baseline: +0.3%

Memory: ✅ 36.549MB (SLO: <38.000MB -3.8%) vs baseline: +4.9%


✅ flush-100-metrics

Time: ✅ 173.992µs (SLO: <250.000µs 📉 -30.4%) vs baseline: +0.4%

Memory: ✅ 36.549MB (SLO: <38.000MB -3.8%) vs baseline: +5.1%


✅ flush-1000-metrics

Time: ✅ 2.187ms (SLO: <2.500ms 📉 -12.5%) vs baseline: +0.2%

Memory: ✅ 37.277MB (SLO: <38.750MB -3.8%) vs baseline: +4.9%


telemetrydependencies - 4/4

✅ first-50-deps-sca-off

Time: ✅ 2.216ms (SLO: <3.500ms 📉 -36.7%) vs baseline: +0.6%

Memory: ✅ 40.718MB (SLO: <46.000MB 📉 -11.5%) vs baseline: +5.4%


✅ first-50-deps-sca-on

Time: ✅ 2.263ms (SLO: <3.750ms 📉 -39.7%) vs baseline: +0.3%

Memory: ✅ 40.580MB (SLO: <46.000MB 📉 -11.8%) vs baseline: +4.6%

ℹ️ Scenarios Missing SLO Configuration (46 scenarios)

The following scenarios exist in candidate data but have no SLO thresholds configured:

  • coreapiscenario-core_dispatch_listeners
  • coreapiscenario-core_dispatch_no_listeners
  • coreapiscenario-core_dispatch_with_results_listeners
  • coreapiscenario-core_dispatch_with_results_no_listeners
  • djangosimple-baseline
  • errortrackingdjangosimple-baseline
  • errortrackingflasksqli-baseline
  • flasksimple-baseline
  • flasksqli-baseline
  • iast_aspects-re_expand_aspect
  • iast_aspects-re_expand_noaspect
  • iast_aspects-re_findall_aspect
  • iast_aspects-re_findall_noaspect
  • iast_aspects-re_finditer_aspect
  • iast_aspects-re_finditer_noaspect
  • iast_aspects-re_fullmatch_aspect
  • iast_aspects-re_fullmatch_noaspect
  • iast_aspects-re_group_aspect
  • iast_aspects-re_group_noaspect
  • iast_aspects-re_groups_aspect
  • iast_aspects-re_groups_noaspect
  • iast_aspects-re_match_aspect
  • iast_aspects-re_match_noaspect
  • iast_aspects-re_search_aspect
  • iast_aspects-re_search_noaspect
  • iast_aspects-re_sub_aspect
  • iast_aspects-re_sub_noaspect
  • iast_aspects-re_subn_aspect
  • iast_aspects-re_subn_noaspect
  • sethttpmeta-obfuscation-disabled
  • startup-baseline
  • startup-baseline_django
  • startup-baseline_flask
  • startup-ddtrace_run
  • startup-ddtrace_run_appsec
  • startup-ddtrace_run_profiling
  • startup-ddtrace_run_runtime_metrics
  • startup-ddtrace_run_send_span
  • startup-ddtrace_run_telemetry_disabled
  • startup-ddtrace_run_telemetry_enabled
  • startup-import_ddtrace
  • startup-import_ddtrace_auto
  • startup-import_ddtrace_auto_django
  • startup-import_ddtrace_auto_flask
  • startup-import_ddtrace_django
  • startup-import_ddtrace_flask

@gnufede gnufede changed the title use dockerized selenium chore(selenium): use dockerized selenium setup for tests Apr 24, 2026
@gnufede gnufede added the changelog/no-changelog A changelog entry is not required for this PR. label Apr 24, 2026
@gnufede gnufede marked this pull request as ready for review April 24, 2026 11:59
@gnufede gnufede requested review from a team as code owners April 24, 2026 11:59
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: 85a02150de

ℹ️ About Codex in GitHub

Codex has been enabled to automatically 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 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment thread tests/contrib/selenium/test_selenium_chrome.py
Copy link
Copy Markdown
Collaborator

@emmettbutler emmettbutler left a comment

Choose a reason for hiding this comment

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

thanks for doing this

@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot merged commit caa8f79 into main Apr 27, 2026
1148 of 1150 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d Bot deleted the gnufede/docker-selenium branch April 27, 2026 10:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/no-changelog A changelog entry is not required for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants