Skip to content

chore(aap): remove waf_mockup + prevent concurrent access to ASM_Environment after finalization#16670

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 19 commits intomainfrom
christophe-papazian/improve_waf_interface
Mar 2, 2026
Merged

chore(aap): remove waf_mockup + prevent concurrent access to ASM_Environment after finalization#16670
gh-worker-dd-mergequeue-cf854d[bot] merged 19 commits intomainfrom
christophe-papazian/improve_waf_interface

Conversation

@christophe-papazian
Copy link
Contributor

@christophe-papazian christophe-papazian commented Feb 26, 2026

Description

ASM Request context improvements:

  • Make sure that as soon as finalization process is started, waf is unreachable, except for APIManager called during finalization. This should prevent concurrent access to the waf during context finalization.
  • drop waf_mockup: if the waf can't be initialized, all appsec features should be deactivated.
  • Also test updated for those changes.

APPSEC-59690

@christophe-papazian christophe-papazian added changelog/no-changelog A changelog entry is not required for this PR. ASM Application Security Monitoring labels Feb 26, 2026
@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 26, 2026

Codeowners resolved as

ddtrace/appsec/_api_security/api_manager.py                             @DataDog/asm-python
ddtrace/appsec/_asm_request_context.py                                  @DataDog/asm-python
ddtrace/appsec/_ddwaf/__init__.py                                       @DataDog/asm-python
ddtrace/appsec/_processor.py                                            @DataDog/asm-python
tests/appsec/appsec/api_security/test_api_security_manager.py           @DataDog/asm-python
tests/appsec/appsec/api_security/test_schema_fuzz.py                    @DataDog/asm-python
tests/appsec/appsec/test_processor.py                                   @DataDog/asm-python
tests/appsec/appsec/test_telemetry.py                                   @DataDog/asm-python
tests/appsec/contrib_appsec/utils.py                                    @DataDog/asm-python
tests/smoke_test.py                                                     @DataDog/python-guild

@datadog-datadog-prod-us1

This comment has been minimized.

@pr-commenter
Copy link

pr-commenter bot commented Feb 27, 2026

Performance SLOs

Comparing candidate christophe-papazian/improve_waf_interface (b1f0320) with baseline main (1e45c41)

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

✅ add_aspect

Time: ✅ 104.469µs (SLO: <130.000µs 📉 -19.6%) vs baseline: +3.3%

Memory: ✅ 43.588MB (SLO: <46.000MB -5.2%) vs baseline: +6.0%


✅ add_inplace_aspect

Time: ✅ 101.718µs (SLO: <130.000µs 📉 -21.8%) vs baseline: -1.6%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +5.0%


✅ add_inplace_noaspect

Time: ✅ 28.408µs (SLO: <40.000µs 📉 -29.0%) vs baseline: +0.9%

Memory: ✅ 43.509MB (SLO: <46.000MB -5.4%) vs baseline: +5.8%


✅ add_noaspect

Time: ✅ 49.124µs (SLO: <70.000µs 📉 -29.8%) vs baseline: +0.2%

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.2%


✅ bytearray_aspect

Time: ✅ 253.662µs (SLO: <400.000µs 📉 -36.6%) vs baseline: -1.8%

Memory: ✅ 43.509MB (SLO: <46.000MB -5.4%) vs baseline: +5.8%


✅ bytearray_extend_aspect

Time: ✅ 639.515µs (SLO: <800.000µs 📉 -20.1%) vs baseline: -1.6%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.5%


✅ bytearray_extend_noaspect

Time: ✅ 266.944µs (SLO: <400.000µs 📉 -33.3%) vs baseline: -3.3%

Memory: ✅ 43.490MB (SLO: <46.000MB -5.5%) vs baseline: +5.6%


✅ bytearray_noaspect

Time: ✅ 137.135µs (SLO: <300.000µs 📉 -54.3%) vs baseline: -5.9%

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


✅ bytes_aspect

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

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


✅ bytes_noaspect

Time: ✅ 134.907µs (SLO: <200.000µs 📉 -32.5%) vs baseline: ~same

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.1%


✅ bytesio_aspect

Time: ✅ 3.779ms (SLO: <5.000ms 📉 -24.4%) vs baseline: -3.0%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.4%


✅ bytesio_noaspect

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

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.5%


✅ capitalize_aspect

Time: ✅ 89.090µs (SLO: <300.000µs 📉 -70.3%) vs baseline: +0.8%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.4%


✅ capitalize_noaspect

Time: ✅ 254.151µs (SLO: <300.000µs 📉 -15.3%) vs baseline: -2.9%

Memory: ✅ 43.568MB (SLO: <46.000MB -5.3%) vs baseline: +5.7%


✅ casefold_aspect

Time: ✅ 89.989µs (SLO: <500.000µs 📉 -82.0%) vs baseline: +1.9%

Memory: ✅ 43.608MB (SLO: <46.000MB -5.2%) vs baseline: +5.8%


✅ casefold_noaspect

Time: ✅ 309.023µs (SLO: <500.000µs 📉 -38.2%) vs baseline: -3.9%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.3%


✅ decode_aspect

Time: ✅ 86.757µs (SLO: <100.000µs 📉 -13.2%) vs baseline: -0.4%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.1%


✅ decode_noaspect

Time: ✅ 152.488µs (SLO: <210.000µs 📉 -27.4%) vs baseline: -2.0%

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.6%


✅ encode_aspect

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

Memory: ✅ 43.490MB (SLO: <46.000MB -5.5%) vs baseline: +5.7%


✅ encode_noaspect

Time: ✅ 140.415µs (SLO: <200.000µs 📉 -29.8%) vs baseline: -0.1%

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.4%


✅ format_aspect

Time: ✅ 14.789ms (SLO: <19.200ms 📉 -23.0%) vs baseline: +0.9%

Memory: ✅ 43.686MB (SLO: <46.000MB -5.0%) vs baseline: +5.7%


✅ format_map_aspect

Time: ✅ 16.446ms (SLO: <21.500ms 📉 -23.5%) vs baseline: +0.4%

Memory: ✅ 43.656MB (SLO: <46.000MB -5.1%) vs baseline: +5.6%


✅ format_map_noaspect

Time: ✅ 372.839µs (SLO: <500.000µs 📉 -25.4%) vs baseline: +1.7%

Memory: ✅ 43.450MB (SLO: <46.000MB -5.5%) vs baseline: +5.6%


✅ format_noaspect

Time: ✅ 306.818µs (SLO: <500.000µs 📉 -38.6%) vs baseline: -2.1%

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.4%


✅ index_aspect

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

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


✅ index_noaspect

Time: ✅ 40.758µs (SLO: <300.000µs 📉 -86.4%) vs baseline: +0.5%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.1%


✅ join_aspect

Time: ✅ 213.133µs (SLO: <300.000µs 📉 -29.0%) vs baseline: -3.0%

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


✅ join_noaspect

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

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.1%


✅ ljust_aspect

Time: ✅ 586.078µs (SLO: <700.000µs 📉 -16.3%) vs baseline: 📈 +17.6%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.4%


✅ ljust_noaspect

Time: ✅ 265.457µs (SLO: <300.000µs 📉 -11.5%) vs baseline: +1.9%

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.3%


✅ lower_aspect

Time: ✅ 300.640µs (SLO: <500.000µs 📉 -39.9%) vs baseline: -2.4%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.1%


✅ lower_noaspect

Time: ✅ 242.771µs (SLO: <300.000µs 📉 -19.1%) vs baseline: +1.3%

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.1%


✅ lstrip_aspect

Time: ✅ 0.273ms (SLO: <3.000ms 📉 -90.9%) vs baseline: -4.0%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.6%


✅ lstrip_noaspect

Time: ✅ 0.180ms (SLO: <3.000ms 📉 -94.0%) vs baseline: +0.4%

Memory: ✅ 43.431MB (SLO: <46.000MB -5.6%) vs baseline: +5.5%


✅ modulo_aspect

Time: ✅ 14.415ms (SLO: <18.750ms 📉 -23.1%) vs baseline: +0.9%

Memory: ✅ 43.588MB (SLO: <46.000MB -5.2%) vs baseline: +5.5%


✅ modulo_aspect_for_bytearray_bytearray

Time: ✅ 15.008ms (SLO: <19.350ms 📉 -22.4%) vs baseline: +1.6%

Memory: ✅ 43.717MB (SLO: <46.000MB -5.0%) vs baseline: +5.9%


✅ modulo_aspect_for_bytes

Time: ✅ 14.439ms (SLO: <18.900ms 📉 -23.6%) vs baseline: +0.5%

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


✅ modulo_aspect_for_bytes_bytearray

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

Memory: ✅ 43.509MB (SLO: <46.000MB -5.4%) vs baseline: +5.4%


✅ modulo_noaspect

Time: ✅ 0.364ms (SLO: <3.000ms 📉 -87.9%) vs baseline: ~same

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.5%


✅ replace_aspect

Time: ✅ 18.491ms (SLO: <24.000ms 📉 -23.0%) vs baseline: +0.3%

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.0%


✅ replace_noaspect

Time: ✅ 283.706µs (SLO: <300.000µs -5.4%) vs baseline: ~same

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.3%


✅ repr_aspect

Time: ✅ 314.249µs (SLO: <420.000µs 📉 -25.2%) vs baseline: -2.5%

Memory: ✅ 43.509MB (SLO: <46.000MB -5.4%) vs baseline: +5.5%


✅ repr_noaspect

Time: ✅ 46.762µs (SLO: <90.000µs 📉 -48.0%) vs baseline: -0.5%

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.4%


✅ rstrip_aspect

Time: ✅ 390.656µs (SLO: <500.000µs 📉 -21.9%) vs baseline: +1.1%

Memory: ✅ 43.431MB (SLO: <46.000MB -5.6%) vs baseline: +5.4%


✅ rstrip_noaspect

Time: ✅ 184.959µs (SLO: <300.000µs 📉 -38.3%) vs baseline: +1.1%

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.3%


✅ slice_aspect

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


✅ slice_noaspect

Time: ✅ 54.364µs (SLO: <90.000µs 📉 -39.6%) vs baseline: +0.9%

Memory: ✅ 43.470MB (SLO: <46.000MB -5.5%) vs baseline: +5.8%


✅ stringio_aspect

Time: ✅ 4.380ms (SLO: <5.000ms 📉 -12.4%) vs baseline: 📈 +11.9%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.5%


✅ stringio_noaspect

Time: ✅ 348.290µs (SLO: <500.000µs 📉 -30.3%) vs baseline: +0.6%

Memory: ✅ 43.352MB (SLO: <46.000MB -5.8%) vs baseline: +5.3%


✅ strip_aspect

Time: ✅ 269.828µs (SLO: <350.000µs 📉 -22.9%) vs baseline: -3.5%

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +5.4%


✅ strip_noaspect

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

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.1%


✅ swapcase_aspect

Time: ✅ 332.849µs (SLO: <500.000µs 📉 -33.4%) vs baseline: -3.8%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +5.4%


✅ swapcase_noaspect

Time: ✅ 275.162µs (SLO: <400.000µs 📉 -31.2%) vs baseline: -2.4%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.6%


✅ title_aspect

Time: ✅ 321.300µs (SLO: <500.000µs 📉 -35.7%) vs baseline: -3.0%

Memory: ✅ 43.431MB (SLO: <46.000MB -5.6%) vs baseline: +5.4%


✅ title_noaspect

Time: ✅ 262.740µs (SLO: <400.000µs 📉 -34.3%) vs baseline: -0.8%

Memory: ✅ 43.431MB (SLO: <46.000MB -5.6%) vs baseline: +5.6%


✅ translate_aspect

Time: ✅ 495.842µs (SLO: <700.000µs 📉 -29.2%) vs baseline: -1.2%

Memory: ✅ 43.529MB (SLO: <46.000MB -5.4%) vs baseline: +5.6%


✅ translate_noaspect

Time: ✅ 425.695µs (SLO: <500.000µs 📉 -14.9%) vs baseline: -3.4%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.5%


✅ upper_aspect

Time: ✅ 297.766µs (SLO: <500.000µs 📉 -40.4%) vs baseline: -3.7%

Memory: ✅ 43.431MB (SLO: <46.000MB -5.6%) vs baseline: +5.4%


✅ upper_noaspect

Time: ✅ 237.956µs (SLO: <400.000µs 📉 -40.5%) vs baseline: -1.1%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +5.2%


📈 iastaspectsospath - 24/24

✅ ospathbasename_aspect

Time: ✅ 506.176µs (SLO: <700.000µs 📉 -27.7%) vs baseline: 📈 +15.3%

Memory: ✅ 43.411MB (SLO: <46.000MB -5.6%) vs baseline: +5.9%


✅ ospathbasename_noaspect

Time: ✅ 431.260µs (SLO: <700.000µs 📉 -38.4%) vs baseline: -3.8%

Memory: ✅ 43.450MB (SLO: <46.000MB -5.5%) vs baseline: +6.2%


✅ ospathjoin_aspect

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

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +6.2%


✅ ospathjoin_noaspect

Time: ✅ 632.469µs (SLO: <700.000µs -9.6%) vs baseline: +0.6%

Memory: ✅ 43.372MB (SLO: <46.000MB -5.7%) vs baseline: +6.4%


✅ ospathnormcase_aspect

Time: ✅ 348.503µs (SLO: <700.000µs 📉 -50.2%) vs baseline: -5.4%

Memory: ✅ 43.313MB (SLO: <46.000MB -5.8%) vs baseline: +5.9%


✅ ospathnormcase_noaspect

Time: ✅ 354.665µs (SLO: <700.000µs 📉 -49.3%) vs baseline: -4.3%

Memory: ✅ 43.313MB (SLO: <46.000MB -5.8%) vs baseline: +5.5%


✅ ospathsplit_aspect

Time: ✅ 487.870µs (SLO: <700.000µs 📉 -30.3%) vs baseline: -2.5%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +6.0%


✅ ospathsplit_noaspect

Time: ✅ 500.192µs (SLO: <700.000µs 📉 -28.5%) vs baseline: -1.4%

Memory: ✅ 43.273MB (SLO: <46.000MB -5.9%) vs baseline: +5.7%


✅ ospathsplitdrive_aspect

Time: ✅ 372.069µs (SLO: <700.000µs 📉 -46.8%) vs baseline: -2.7%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +6.0%


✅ ospathsplitdrive_noaspect

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

Memory: ✅ 43.313MB (SLO: <46.000MB -5.8%) vs baseline: +6.1%


✅ ospathsplitext_aspect

Time: ✅ 451.838µs (SLO: <700.000µs 📉 -35.5%) vs baseline: -4.1%

Memory: ✅ 43.293MB (SLO: <46.000MB -5.9%) vs baseline: +5.7%


✅ ospathsplitext_noaspect

Time: ✅ 464.954µs (SLO: <700.000µs 📉 -33.6%) vs baseline: -2.0%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +6.2%

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

⚠️ context_with_data_listeners

Time: ⚠️ 13.228µs (SLO: <20.000µs 📉 -33.9%) vs baseline: -0.3%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.5%


✅ context_with_data_no_listeners

Time: ✅ 3.304µs (SLO: <10.000µs 📉 -67.0%) vs baseline: +1.0%

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


✅ get_item_exists

Time: ✅ 0.590µs (SLO: <10.000µs 📉 -94.1%) vs baseline: +1.6%

Memory: ✅ 35.999MB (SLO: <38.000MB -5.3%) vs baseline: +5.4%


✅ get_item_missing

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

Memory: ✅ 35.999MB (SLO: <38.000MB -5.3%) vs baseline: +5.5%


✅ set_item

Time: ✅ 24.298µs (SLO: <30.000µs 📉 -19.0%) vs baseline: -0.4%

Memory: ✅ 36.019MB (SLO: <38.000MB -5.2%) vs baseline: +5.4%


⚠️ packagesupdateimporteddependencies - 24/24 (1 unstable)

✅ import_many

Time: ✅ 154.525µs (SLO: <170.000µs -9.1%) vs baseline: +0.3%

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


✅ import_many_cached

Time: ✅ 121.710µs (SLO: <130.000µs -6.4%) vs baseline: +0.4%

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


✅ import_many_stdlib

Time: ✅ 0.773ms (SLO: <1.750ms 📉 -55.9%) vs baseline: +0.4%

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


⚠️ import_many_stdlib_cached

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

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


✅ import_many_unknown

Time: ✅ 829.983µs (SLO: <890.000µs -6.7%) vs baseline: ~same

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


✅ import_many_unknown_cached

Time: ✅ 797.757µs (SLO: <870.000µs -8.3%) vs baseline: +0.8%

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


✅ import_one

Time: ✅ 19.862µs (SLO: <30.000µs 📉 -33.8%) vs baseline: +1.0%

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


✅ import_one_cache

Time: ✅ 6.303µs (SLO: <10.000µs 📉 -37.0%) vs baseline: +0.8%

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


✅ import_one_stdlib

Time: ✅ 18.723µs (SLO: <20.000µs -6.4%) vs baseline: +0.5%

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


✅ import_one_stdlib_cache

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

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


✅ import_one_unknown

Time: ✅ 45.267µs (SLO: <50.000µs -9.5%) vs baseline: +0.5%

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


✅ import_one_unknown_cache

Time: ✅ 6.255µs (SLO: <10.000µs 📉 -37.4%) vs baseline: -0.7%

Memory: ✅ 40.958MB (SLO: <43.000MB -4.7%) vs baseline: +5.3%

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

✅ fork-10

Time: ✅ 2.113s (SLO: <2.300s -8.1%) vs baseline: +1.8%

Memory: ✅ 17.478MB (SLO: <20.000MB 📉 -12.6%) vs baseline: +5.7%


djangosimple - 30/30

✅ appsec

Time: ✅ 19.571ms (SLO: <22.300ms 📉 -12.2%) vs baseline: -0.2%

Memory: ✅ 67.771MB (SLO: <73.500MB -7.8%) vs baseline: +4.6%


✅ exception-replay-enabled

Time: ✅ 1.378ms (SLO: <1.450ms -5.0%) vs baseline: ~same

Memory: ✅ 66.119MB (SLO: <71.500MB -7.5%) vs baseline: +5.0%


✅ iast

Time: ✅ 19.553ms (SLO: <22.250ms 📉 -12.1%) vs baseline: ~same

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


✅ profiler

Time: ✅ 15.183ms (SLO: <16.550ms -8.3%) vs baseline: -0.7%

Memory: ✅ 59.046MB (SLO: <61.000MB -3.2%) vs baseline: +4.7%


✅ resource-renaming

Time: ✅ 19.546ms (SLO: <21.750ms 📉 -10.1%) vs baseline: +0.6%

Memory: ✅ 67.869MB (SLO: <73.500MB -7.7%) vs baseline: +4.8%


✅ span-code-origin

Time: ✅ 19.988ms (SLO: <28.200ms 📉 -29.1%) vs baseline: +1.4%

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


✅ tracer

Time: ✅ 19.628ms (SLO: <21.750ms -9.8%) vs baseline: +0.3%

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


✅ tracer-and-profiler

Time: ✅ 21.045ms (SLO: <23.500ms 📉 -10.4%) vs baseline: ~same

Memory: ✅ 69.501MB (SLO: <75.000MB -7.3%) vs baseline: +5.1%


✅ tracer-dont-create-db-spans

Time: ✅ 19.728ms (SLO: <21.500ms -8.2%) vs baseline: +0.9%

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


✅ tracer-minimal

Time: ✅ 16.851ms (SLO: <17.500ms -3.7%) vs baseline: +0.9%

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


✅ tracer-native

Time: ✅ 19.608ms (SLO: <21.750ms -9.8%) vs baseline: +0.9%

Memory: ✅ 67.908MB (SLO: <72.500MB -6.3%) vs baseline: +4.9%


✅ tracer-no-caches

Time: ✅ 17.577ms (SLO: <19.650ms 📉 -10.5%) vs baseline: +0.3%

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


✅ tracer-no-databases

Time: ✅ 19.234ms (SLO: <20.100ms -4.3%) vs baseline: +1.0%

Memory: ✅ 67.849MB (SLO: <75.000MB -9.5%) vs baseline: +4.6%


✅ tracer-no-middleware

Time: ✅ 19.353ms (SLO: <21.500ms -10.0%) vs baseline: +0.3%

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


✅ tracer-no-templates

Time: ✅ 19.594ms (SLO: <22.000ms 📉 -10.9%) vs baseline: +1.4%

Memory: ✅ 67.889MB (SLO: <73.500MB -7.6%) vs baseline: +4.8%


errortrackingdjangosimple - 6/6

✅ errortracking-enabled-all

Time: ✅ 16.365ms (SLO: <19.850ms 📉 -17.6%) vs baseline: ~same

Memory: ✅ 67.894MB (SLO: <75.000MB -9.5%) vs baseline: +5.3%


✅ errortracking-enabled-user

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

Memory: ✅ 67.974MB (SLO: <75.000MB -9.4%) vs baseline: +5.4%


✅ tracer-enabled

Time: ✅ 16.284ms (SLO: <19.450ms 📉 -16.3%) vs baseline: -0.2%

Memory: ✅ 67.935MB (SLO: <75.000MB -9.4%) vs baseline: +5.3%


errortrackingflasksqli - 6/6

✅ errortracking-enabled-all

Time: ✅ 2.113ms (SLO: <2.300ms -8.1%) vs baseline: +0.3%

Memory: ✅ 55.247MB (SLO: <60.000MB -7.9%) vs baseline: +5.1%


✅ errortracking-enabled-user

Time: ✅ 2.124ms (SLO: <2.250ms -5.6%) vs baseline: +0.6%

Memory: ✅ 55.365MB (SLO: <60.000MB -7.7%) vs baseline: +5.2%


✅ tracer-enabled

Time: ✅ 2.114ms (SLO: <2.300ms -8.1%) vs baseline: +0.7%

Memory: ✅ 55.345MB (SLO: <60.000MB -7.8%) vs baseline: +5.3%


flasksimple - 18/18

✅ appsec-get

Time: ✅ 3.419ms (SLO: <4.750ms 📉 -28.0%) vs baseline: -0.2%

Memory: ✅ 55.502MB (SLO: <66.500MB 📉 -16.5%) vs baseline: +5.1%


✅ appsec-post

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

Memory: ✅ 55.542MB (SLO: <66.500MB 📉 -16.5%) vs baseline: +5.0%


✅ appsec-telemetry

Time: ✅ 3.432ms (SLO: <4.750ms 📉 -27.7%) vs baseline: +0.5%

Memory: ✅ 55.502MB (SLO: <66.500MB 📉 -16.5%) vs baseline: +5.0%


✅ debugger

Time: ✅ 1.871ms (SLO: <2.000ms -6.5%) vs baseline: ~same

Memory: ✅ 48.916MB (SLO: <51.500MB -5.0%) vs baseline: +4.7%


✅ iast-get

Time: ✅ 1.857ms (SLO: <2.000ms -7.2%) vs baseline: ~same

Memory: ✅ 45.751MB (SLO: <49.000MB -6.6%) vs baseline: +4.8%


✅ profiler

Time: ✅ 1.912ms (SLO: <2.100ms -9.0%) vs baseline: +0.3%

Memory: ✅ 51.413MB (SLO: <52.500MB -2.1%) vs baseline: +4.6%


✅ resource-renaming

Time: ✅ 3.394ms (SLO: <3.650ms -7.0%) vs baseline: -0.2%

Memory: ✅ 55.424MB (SLO: <60.000MB -7.6%) vs baseline: +5.0%


✅ tracer

Time: ✅ 3.412ms (SLO: <3.650ms -6.5%) vs baseline: +0.1%

Memory: ✅ 55.443MB (SLO: <60.000MB -7.6%) vs baseline: +4.9%


✅ tracer-native

Time: ✅ 3.412ms (SLO: <3.650ms -6.5%) vs baseline: ~same

Memory: ✅ 55.522MB (SLO: <60.000MB -7.5%) vs baseline: +5.0%


flasksqli - 6/6

✅ appsec-enabled

Time: ✅ 2.099ms (SLO: <4.200ms 📉 -50.0%) vs baseline: -0.4%

Memory: ✅ 55.443MB (SLO: <66.000MB 📉 -16.0%) vs baseline: +5.0%


✅ iast-enabled

Time: ✅ 2.113ms (SLO: <2.800ms 📉 -24.5%) vs baseline: +0.3%

Memory: ✅ 55.424MB (SLO: <62.500MB 📉 -11.3%) vs baseline: +5.2%


✅ tracer-enabled

Time: ✅ 2.105ms (SLO: <2.250ms -6.4%) vs baseline: +0.3%

Memory: ✅ 55.443MB (SLO: <60.000MB -7.6%) vs baseline: +5.2%


forktime - 4/4

✅ baseline

Time: ✅ 1.951ms (SLO: <3.000ms 📉 -35.0%) vs baseline: +4.5%

Memory: ✅ 29.216MB (SLO: <33.000MB 📉 -11.5%) vs baseline: +4.7%


✅ configured

Time: ✅ 8.609ms (SLO: <13.000ms 📉 -33.8%) vs baseline: -0.3%

Memory: ✅ 55.419MB (SLO: <60.000MB -7.6%) vs baseline: +5.2%


httppropagationextract - 60/60

✅ all_styles_all_headers

Time: ✅ 80.212µs (SLO: <100.000µs 📉 -19.8%) vs baseline: +5.1%

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


✅ b3_headers

Time: ✅ 12.802µs (SLO: <20.000µs 📉 -36.0%) vs baseline: -1.3%

Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +5.7%


✅ b3_single_headers

Time: ✅ 11.822µs (SLO: <20.000µs 📉 -40.9%) vs baseline: -1.7%

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.6%


✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match

Time: ✅ 61.292µs (SLO: <80.000µs 📉 -23.4%) vs baseline: -0.5%

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


✅ datadog_tracecontext_tracestate_propagated_on_trace_id_match

Time: ✅ 63.264µs (SLO: <80.000µs 📉 -20.9%) vs baseline: +0.4%

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.5%


✅ empty_headers

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

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


✅ full_t_id_datadog_headers

Time: ✅ 21.280µs (SLO: <30.000µs 📉 -29.1%) vs baseline: +0.4%

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


✅ invalid_priority_header

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

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


✅ invalid_span_id_header

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

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


✅ invalid_tags_header

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

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.4%


✅ invalid_trace_id_header

Time: ✅ 5.872µs (SLO: <10.000µs 📉 -41.3%) vs baseline: -0.9%

Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +5.8%


✅ large_header_no_matches

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

Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +5.4%


✅ large_valid_headers_all

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

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


✅ medium_header_no_matches

Time: ✅ 9.226µs (SLO: <20.000µs 📉 -53.9%) vs baseline: +0.4%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.4%


✅ medium_valid_headers_all

Time: ✅ 10.646µs (SLO: <20.000µs 📉 -46.8%) vs baseline: +0.1%

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.5%


✅ none_propagation_style

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

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.4%


✅ tracecontext_headers

Time: ✅ 32.674µs (SLO: <40.000µs 📉 -18.3%) vs baseline: +0.3%

Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +5.5%


✅ valid_headers_all

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

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


✅ valid_headers_basic

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

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.6%


✅ wsgi_empty_headers

Time: ✅ 1.309µs (SLO: <10.000µs 📉 -86.9%) vs baseline: +0.9%

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


✅ wsgi_invalid_priority_header

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

Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +5.5%


✅ wsgi_invalid_span_id_header

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

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.3%


✅ wsgi_invalid_tags_header

Time: ✅ 5.978µs (SLO: <10.000µs 📉 -40.2%) vs baseline: +0.8%

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


✅ wsgi_invalid_trace_id_header

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

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


✅ wsgi_large_header_no_matches

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

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.5%


✅ wsgi_large_valid_headers_all

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

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


✅ wsgi_medium_header_no_matches

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

Memory: ✅ 35.979MB (SLO: <38.000MB -5.3%) vs baseline: +5.4%


✅ wsgi_medium_valid_headers_all

Time: ✅ 11.006µs (SLO: <20.000µs 📉 -45.0%) vs baseline: +0.8%

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


✅ wsgi_valid_headers_all

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

Memory: ✅ 36.196MB (SLO: <38.000MB -4.7%) vs baseline: +5.7%


✅ wsgi_valid_headers_basic

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

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


httppropagationinject - 16/16

✅ ids_only

Time: ✅ 20.356µs (SLO: <30.000µs 📉 -32.1%) vs baseline: +3.1%

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


✅ with_all

Time: ✅ 26.316µs (SLO: <40.000µs 📉 -34.2%) vs baseline: -0.4%

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


✅ with_dd_origin

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

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


✅ with_priority_and_origin

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

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.4%


✅ with_sampling_priority

Time: ✅ 19.679µs (SLO: <30.000µs 📉 -34.4%) vs baseline: -0.8%

Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +5.7%


✅ with_tags

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

Memory: ✅ 36.196MB (SLO: <38.000MB -4.7%) vs baseline: +5.6%


✅ with_tags_invalid

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

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


✅ with_tags_max_size

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

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


iastaspectssplit - 12/12

✅ rsplit_aspect

Time: ✅ 155.959µs (SLO: <250.000µs 📉 -37.6%) vs baseline: +3.8%

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +5.9%


✅ rsplit_noaspect

Time: ✅ 155.571µs (SLO: <250.000µs 📉 -37.8%) vs baseline: -1.0%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +6.1%


✅ split_aspect

Time: ✅ 149.145µs (SLO: <250.000µs 📉 -40.3%) vs baseline: -0.4%

Memory: ✅ 43.313MB (SLO: <46.000MB -5.8%) vs baseline: +6.1%


✅ split_noaspect

Time: ✅ 157.043µs (SLO: <250.000µs 📉 -37.2%) vs baseline: +2.1%

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +6.1%


✅ splitlines_aspect

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

Memory: ✅ 43.391MB (SLO: <46.000MB -5.7%) vs baseline: +6.1%


✅ splitlines_noaspect

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

Memory: ✅ 43.332MB (SLO: <46.000MB -5.8%) vs baseline: +6.2%


iastpropagation - 8/8

✅ no-propagation

Time: ✅ 48.223µs (SLO: <60.000µs 📉 -19.6%) vs baseline: -0.2%

Memory: ✅ 39.479MB (SLO: <42.000MB -6.0%) vs baseline: +5.4%


✅ propagation_enabled

Time: ✅ 135.056µs (SLO: <190.000µs 📉 -28.9%) vs baseline: +0.7%

Memory: ✅ 39.459MB (SLO: <42.000MB -6.0%) vs baseline: +5.3%


✅ propagation_enabled_100

Time: ✅ 1.560ms (SLO: <2.300ms 📉 -32.2%) vs baseline: -0.7%

Memory: ✅ 39.440MB (SLO: <42.000MB -6.1%) vs baseline: +5.2%


✅ propagation_enabled_1000

Time: ✅ 28.948ms (SLO: <34.550ms 📉 -16.2%) vs baseline: -0.4%

Memory: ✅ 39.499MB (SLO: <42.000MB -6.0%) vs baseline: +5.4%


otelsdkspan - 24/24

✅ add-event

Time: ✅ 40.542ms (SLO: <42.000ms -3.5%) vs baseline: ~same

Memory: ✅ 38.574MB (SLO: <40.750MB -5.3%) vs baseline: +5.5%


✅ add-link

Time: ✅ 36.572ms (SLO: <38.550ms -5.1%) vs baseline: +0.3%

Memory: ✅ 38.535MB (SLO: <40.750MB -5.4%) vs baseline: +5.4%


✅ add-metrics

Time: ✅ 222.240ms (SLO: <232.000ms -4.2%) vs baseline: +1.2%

Memory: ✅ 38.516MB (SLO: <40.750MB -5.5%) vs baseline: +5.6%


✅ add-tags

Time: ✅ 213.592ms (SLO: <221.600ms -3.6%) vs baseline: -1.9%

Memory: ✅ 38.653MB (SLO: <40.750MB -5.1%) vs baseline: +6.0%


✅ get-context

Time: ✅ 29.250ms (SLO: <31.300ms -6.6%) vs baseline: +0.2%

Memory: ✅ 38.555MB (SLO: <40.750MB -5.4%) vs baseline: +5.7%


✅ is-recording

Time: ✅ 29.388ms (SLO: <31.000ms -5.2%) vs baseline: +1.0%

Memory: ✅ 38.692MB (SLO: <40.750MB -5.0%) vs baseline: +5.6%


✅ record-exception

Time: ✅ 63.014ms (SLO: <65.850ms -4.3%) vs baseline: -0.4%

Memory: ✅ 38.476MB (SLO: <40.750MB -5.6%) vs baseline: +5.4%


✅ set-status

Time: ✅ 32.129ms (SLO: <34.150ms -5.9%) vs baseline: -0.4%

Memory: ✅ 38.614MB (SLO: <40.750MB -5.2%) vs baseline: +5.5%


✅ start

Time: ✅ 29.513ms (SLO: <30.150ms -2.1%) vs baseline: +1.8%

Memory: ✅ 38.535MB (SLO: <40.750MB -5.4%) vs baseline: +5.3%


✅ start-finish

Time: ✅ 34.280ms (SLO: <35.350ms -3.0%) vs baseline: +0.6%

Memory: ✅ 38.574MB (SLO: <40.750MB -5.3%) vs baseline: +5.8%


✅ start-finish-telemetry

Time: ✅ 34.067ms (SLO: <35.450ms -3.9%) vs baseline: -0.6%

Memory: ✅ 38.594MB (SLO: <40.750MB -5.3%) vs baseline: +5.6%


✅ update-name

Time: ✅ 31.371ms (SLO: <33.400ms -6.1%) vs baseline: +0.6%

Memory: ✅ 38.476MB (SLO: <40.750MB -5.6%) vs baseline: +5.4%


otelspan - 22/22

✅ add-event

Time: ✅ 40.287ms (SLO: <47.150ms 📉 -14.6%) vs baseline: +0.4%

Memory: ✅ 40.961MB (SLO: <47.000MB 📉 -12.8%) vs baseline: +5.7%


✅ add-metrics

Time: ✅ 249.094ms (SLO: <344.800ms 📉 -27.8%) vs baseline: -0.7%

Memory: ✅ 45.463MB (SLO: <47.500MB -4.3%) vs baseline: +5.5%


✅ add-tags

Time: ✅ 306.196ms (SLO: <330.000ms -7.2%) vs baseline: +0.2%

Memory: ✅ 45.357MB (SLO: <47.500MB -4.5%) vs baseline: +5.1%


✅ get-context

Time: ✅ 80.550ms (SLO: <92.350ms 📉 -12.8%) vs baseline: ~same

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


✅ is-recording

Time: ✅ 36.550ms (SLO: <44.500ms 📉 -17.9%) vs baseline: -0.4%

Memory: ✅ 40.809MB (SLO: <47.500MB 📉 -14.1%) vs baseline: +5.6%


✅ record-exception

Time: ✅ 59.411ms (SLO: <67.650ms 📉 -12.2%) vs baseline: ~same

Memory: ✅ 41.495MB (SLO: <47.000MB 📉 -11.7%) vs baseline: +5.7%


✅ set-status

Time: ✅ 43.374ms (SLO: <50.400ms 📉 -13.9%) vs baseline: +0.6%

Memory: ✅ 40.849MB (SLO: <47.000MB 📉 -13.1%) vs baseline: +5.2%


✅ start

Time: ✅ 37.691ms (SLO: <43.450ms 📉 -13.3%) vs baseline: +4.2%

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


✅ start-finish

Time: ✅ 85.064ms (SLO: <90.000ms -5.5%) vs baseline: ~same

Memory: ✅ 38.633MB (SLO: <46.500MB 📉 -16.9%) vs baseline: +5.6%


✅ start-finish-telemetry

Time: ✅ 86.356ms (SLO: <91.000ms -5.1%) vs baseline: -0.2%

Memory: ✅ 38.535MB (SLO: <46.500MB 📉 -17.1%) vs baseline: +5.1%


✅ update-name

Time: ✅ 37.661ms (SLO: <45.150ms 📉 -16.6%) vs baseline: -0.1%

Memory: ✅ 40.961MB (SLO: <47.000MB 📉 -12.8%) vs baseline: +5.5%


packagespackageforrootmodulemapping - 4/4

✅ cache_off

Time: ✅ 345.516ms (SLO: <354.300ms -2.5%) vs baseline: -1.3%

Memory: ✅ 42.291MB (SLO: <46.000MB -8.1%) vs baseline: +5.8%


✅ cache_on

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

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


rand - 2/2

✅ rand128bits

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


✅ rand64bits

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


ratelimiter - 12/12

✅ defaults

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

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


✅ high_rate_limit

Time: ✅ 2.430µs (SLO: <10.000µs 📉 -75.7%) vs baseline: +1.5%

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.7%


✅ long_window

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

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


✅ low_rate_limit

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

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


✅ no_rate_limit

Time: ✅ 0.821µs (SLO: <10.000µs 📉 -91.8%) vs baseline: -1.6%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.3%


✅ short_window

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

Memory: ✅ 36.097MB (SLO: <38.000MB -5.0%) vs baseline: +5.5%


recursivecomputation - 8/8

✅ deep

Time: ✅ 309.528ms (SLO: <320.950ms -3.6%) vs baseline: -0.6%

Memory: ✅ 36.726MB (SLO: <38.750MB -5.2%) vs baseline: +5.3%


✅ deep-profiled

Time: ✅ 326.754ms (SLO: <359.150ms -9.0%) vs baseline: -0.1%

Memory: ✅ 42.841MB (SLO: <46.000MB -6.9%) vs baseline: +6.0%


✅ medium

Time: ✅ 7.108ms (SLO: <7.400ms -4.0%) vs baseline: ~same

Memory: ✅ 35.979MB (SLO: <38.000MB -5.3%) vs baseline: +5.4%


✅ shallow

Time: ✅ 0.979ms (SLO: <1.050ms -6.8%) vs baseline: +1.7%

Memory: ✅ 35.940MB (SLO: <38.000MB -5.4%) vs baseline: +5.5%


samplingrules - 8/8

✅ average_match

Time: ✅ 151.094µs (SLO: <290.000µs 📉 -47.9%) vs baseline: +0.6%

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.7%


✅ high_match

Time: ✅ 202.136µs (SLO: <480.000µs 📉 -57.9%) vs baseline: +2.3%

Memory: ✅ 35.979MB (SLO: <38.000MB -5.3%) vs baseline: +5.7%


✅ low_match

Time: ✅ 100.212µs (SLO: <120.000µs 📉 -16.5%) vs baseline: ~same

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


✅ very_low_match

Time: ✅ 2.942ms (SLO: <8.500ms 📉 -65.4%) vs baseline: -0.2%

Memory: ✅ 78.566MB (SLO: <85.000MB -7.6%) vs baseline: +5.4%


sethttpmeta - 32/32

✅ all-disabled

Time: ✅ 10.478µs (SLO: <20.000µs 📉 -47.6%) vs baseline: -0.5%

Memory: ✅ 36.648MB (SLO: <38.750MB -5.4%) vs baseline: +5.7%


✅ all-enabled

Time: ✅ 41.283µs (SLO: <50.000µs 📉 -17.4%) vs baseline: +2.7%

Memory: ✅ 36.608MB (SLO: <38.750MB -5.5%) vs baseline: +5.8%


✅ collectipvariant_exists

Time: ✅ 40.990µs (SLO: <50.000µs 📉 -18.0%) vs baseline: +0.5%

Memory: ✅ 36.530MB (SLO: <38.750MB -5.7%) vs baseline: +5.4%


✅ no-collectipvariant

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

Memory: ✅ 36.490MB (SLO: <38.750MB -5.8%) vs baseline: +5.3%


✅ no-useragentvariant

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

Memory: ✅ 36.530MB (SLO: <38.750MB -5.7%) vs baseline: +5.4%


✅ obfuscation-no-query

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

Memory: ✅ 36.707MB (SLO: <38.750MB -5.3%) vs baseline: +6.2%


✅ obfuscation-regular-case-explicit-query

Time: ✅ 76.123µs (SLO: <90.000µs 📉 -15.4%) vs baseline: ~same

Memory: ✅ 36.825MB (SLO: <38.750MB -5.0%) vs baseline: +5.5%


✅ obfuscation-regular-case-implicit-query

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

Memory: ✅ 36.844MB (SLO: <38.750MB -4.9%) vs baseline: +5.4%


✅ obfuscation-send-querystring-disabled

Time: ✅ 154.826µs (SLO: <170.000µs -8.9%) vs baseline: -0.3%

Memory: ✅ 36.844MB (SLO: <38.750MB -4.9%) vs baseline: +5.6%


✅ obfuscation-worst-case-explicit-query

Time: ✅ 149.546µs (SLO: <160.000µs -6.5%) vs baseline: ~same

Memory: ✅ 36.884MB (SLO: <38.750MB -4.8%) vs baseline: +5.4%


✅ obfuscation-worst-case-implicit-query

Time: ✅ 155.506µs (SLO: <170.000µs -8.5%) vs baseline: -0.2%

Memory: ✅ 36.864MB (SLO: <38.750MB -4.9%) vs baseline: +5.4%


✅ useragentvariant_exists_1

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

Memory: ✅ 36.471MB (SLO: <38.750MB -5.9%) vs baseline: +5.3%


✅ useragentvariant_exists_2

Time: ✅ 40.643µs (SLO: <50.000µs 📉 -18.7%) vs baseline: -0.3%

Memory: ✅ 36.490MB (SLO: <38.750MB -5.8%) vs baseline: +5.5%


✅ useragentvariant_exists_3

Time: ✅ 40.168µs (SLO: <50.000µs 📉 -19.7%) vs baseline: -0.2%

Memory: ✅ 36.549MB (SLO: <38.750MB -5.7%) vs baseline: +5.8%


✅ useragentvariant_not_exists_1

Time: ✅ 39.687µs (SLO: <50.000µs 📉 -20.6%) vs baseline: +0.3%

Memory: ✅ 36.608MB (SLO: <38.750MB -5.5%) vs baseline: +5.8%


✅ useragentvariant_not_exists_2

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

Memory: ✅ 36.510MB (SLO: <38.750MB -5.8%) vs baseline: +5.3%


span - 26/26

✅ add-event

Time: ✅ 18.196ms (SLO: <22.500ms 📉 -19.1%) vs baseline: +0.2%

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


✅ add-metrics

Time: ✅ 87.797ms (SLO: <93.500ms -6.1%) vs baseline: +0.7%

Memory: ✅ 42.723MB (SLO: <53.000MB 📉 -19.4%) vs baseline: +5.4%


✅ add-tags

Time: ✅ 143.755ms (SLO: <155.000ms -7.3%) vs baseline: +0.8%

Memory: ✅ 42.695MB (SLO: <53.000MB 📉 -19.4%) vs baseline: +5.8%


✅ get-context

Time: ✅ 16.764ms (SLO: <20.500ms 📉 -18.2%) vs baseline: +0.8%

Memory: ✅ 38.004MB (SLO: <53.000MB 📉 -28.3%) vs baseline: +5.3%


✅ is-recording

Time: ✅ 16.728ms (SLO: <20.500ms 📉 -18.4%) vs baseline: ~same

Memory: ✅ 37.945MB (SLO: <53.000MB 📉 -28.4%) vs baseline: +5.1%


✅ record-exception

Time: ✅ 37.396ms (SLO: <41.000ms -8.8%) vs baseline: ~same

Memory: ✅ 38.709MB (SLO: <53.000MB 📉 -27.0%) vs baseline: +6.0%


✅ set-status

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

Memory: ✅ 38.004MB (SLO: <53.000MB 📉 -28.3%) vs baseline: +5.4%


✅ start

Time: ✅ 17.526ms (SLO: <20.500ms 📉 -14.5%) vs baseline: +5.6%

Memory: ✅ 38.004MB (SLO: <53.000MB 📉 -28.3%) vs baseline: +5.5%


✅ start-finish

Time: ✅ 52.960ms (SLO: <56.000ms -5.4%) vs baseline: -0.6%

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.7%


✅ start-finish-telemetry

Time: ✅ 54.193ms (SLO: <58.000ms -6.6%) vs baseline: -0.7%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.7%


✅ start-finish-traceid128

Time: ✅ 55.643ms (SLO: <60.000ms -7.3%) vs baseline: -0.8%

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.6%


✅ start-traceid128

Time: ✅ 16.581ms (SLO: <22.500ms 📉 -26.3%) vs baseline: -0.7%

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


✅ update-name

Time: ✅ 17.222ms (SLO: <22.000ms 📉 -21.7%) vs baseline: +0.6%

Memory: ✅ 38.004MB (SLO: <53.000MB 📉 -28.3%) vs baseline: +5.5%


telemetryaddmetric - 30/30

✅ 1-count-metric-1-times

Time: ✅ 2.267µs (SLO: <20.000µs 📉 -88.7%) vs baseline: +9.4%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.4%


✅ 1-count-metrics-100-times

Time: ✅ 150.379µs (SLO: <220.000µs 📉 -31.6%) vs baseline: +0.7%

Memory: ✅ 35.960MB (SLO: <38.000MB -5.4%) vs baseline: +5.3%


✅ 1-distribution-metric-1-times

Time: ✅ 2.448µs (SLO: <20.000µs 📉 -87.8%) vs baseline: +0.2%

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.5%


✅ 1-distribution-metrics-100-times

Time: ✅ 165.784µs (SLO: <230.000µs 📉 -27.9%) vs baseline: ~same

Memory: ✅ 35.960MB (SLO: <38.000MB -5.4%) vs baseline: +5.3%


✅ 1-gauge-metric-1-times

Time: ✅ 1.949µs (SLO: <20.000µs 📉 -90.3%) vs baseline: -0.9%

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.4%


✅ 1-gauge-metrics-100-times

Time: ✅ 135.600µs (SLO: <150.000µs -9.6%) vs baseline: -0.3%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.4%


✅ 1-rate-metric-1-times

Time: ✅ 2.245µs (SLO: <20.000µs 📉 -88.8%) vs baseline: -0.3%

Memory: ✅ 35.999MB (SLO: <38.000MB -5.3%) vs baseline: +5.4%


✅ 1-rate-metrics-100-times

Time: ✅ 164.287µs (SLO: <250.000µs 📉 -34.3%) vs baseline: -0.7%

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


✅ 100-count-metrics-100-times

Time: ✅ 15.159ms (SLO: <22.000ms 📉 -31.1%) vs baseline: +0.5%

Memory: ✅ 35.979MB (SLO: <38.000MB -5.3%) vs baseline: +5.2%


✅ 100-distribution-metrics-100-times

Time: ✅ 1.739ms (SLO: <2.550ms 📉 -31.8%) vs baseline: -0.9%

Memory: ✅ 35.999MB (SLO: <38.000MB -5.3%) vs baseline: +5.4%


✅ 100-gauge-metrics-100-times

Time: ✅ 1.405ms (SLO: <1.550ms -9.3%) vs baseline: +0.7%

Memory: ✅ 36.038MB (SLO: <38.000MB -5.2%) vs baseline: +5.4%


✅ 100-rate-metrics-100-times

Time: ✅ 1.688ms (SLO: <2.550ms 📉 -33.8%) vs baseline: ~same

Memory: ✅ 35.960MB (SLO: <38.000MB -5.4%)


✅ flush-1-metric

Time: ✅ 3.606µs (SLO: <20.000µs 📉 -82.0%) vs baseline: +2.9%

Memory: ✅ 36.058MB (SLO: <38.000MB -5.1%) vs baseline: +5.5%


✅ flush-100-metrics

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

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


✅ flush-1000-metrics

Time: ✅ 2.191ms (SLO: <2.500ms 📉 -12.4%) vs baseline: +0.6%

Memory: ✅ 36.962MB (SLO: <38.750MB -4.6%) vs baseline: +6.0%


tracer - 6/6

✅ large

Time: ✅ 31.270ms (SLO: <32.950ms -5.1%) vs baseline: +0.6%

Memory: ✅ 37.238MB (SLO: <39.250MB -5.1%) vs baseline: +5.6%


✅ medium

Time: ✅ 3.066ms (SLO: <3.200ms -4.2%) vs baseline: -0.4%

Memory: ✅ 35.979MB (SLO: <38.750MB -7.2%) vs baseline: +5.6%


✅ small

Time: ✅ 359.765µs (SLO: <370.000µs -2.8%) vs baseline: +3.9%

Memory: ✅ 35.979MB (SLO: <38.750MB -7.2%) vs baseline: +5.4%

ℹ️ 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

@christophe-papazian christophe-papazian marked this pull request as ready for review February 27, 2026 15:55
@christophe-papazian christophe-papazian requested review from a team as code owners February 27, 2026 15:55
Copy link

@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: a76cfc4ebc

ℹ️ 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".

@florentinl
Copy link
Contributor

florentinl commented Mar 2, 2026

Overall LGTM,
I would rename the PR though with a less generic name than improve to get a more interpretable commit history. (something like, chore(aap): remove waf_mockup + prevent concurrent access to ASM_Environment after finalization or anything else really)

Would be even better of course if we could reproduce the behavior this change is defending against in a test and to make this PR an actual fix but this feels a bit out of reach.

@christophe-papazian christophe-papazian changed the title chore(aap): improve waf interface chore(aap): remove waf_mockup + prevent concurrent access to ASM_Environment after finalization Mar 2, 2026
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot merged commit 9b03764 into main Mar 2, 2026
962 checks passed
@gh-worker-dd-mergequeue-cf854d gh-worker-dd-mergequeue-cf854d bot deleted the christophe-papazian/improve_waf_interface branch March 2, 2026 16:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ASM Application Security Monitoring 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.

4 participants