Skip to content

Conversation

@KowalskiThomas
Copy link
Contributor

@KowalskiThomas KowalskiThomas commented Jan 28, 2026

Description

https://datadoghq.atlassian.net/browse/PROF-13112

Prevent stack chunk updates from recursing indefinitely on cyclic or excessively deep chunk chains, and add a regression test covering self-referential chunk data to guard against stack overflows.

Testing

We unfortunately can't unit test this at the moment since our unit tests (profiling_native jobs in GitLab) are not built against CPython and Echion requires CPython headers.

Risks

Low: bounds corrupted stack chunk chains to avoid recursion overflow.

@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Jan 28, 2026

Bits AI Dev Agent Status: ✅ Done [Fix CI Errors] [View Dev Agent Session]

Status History (7 entries)
2026-01-29 09:46:02 UTC ✅ Processed user query, no code changes
2026-01-29 10:03:42 UTC ✅ Processed user query, no code changes
2026-01-30 11:35:06 UTC ✅ Processed user query, no code changes
2026-01-30 11:47:49 UTC ✅ Processed user query
2026-01-30 11:54:20 UTC ✅ Pushed a commit per user request
2026-01-30 13:22:26 UTC ✅ Processed user query
2026-01-30 13:47:58 UTC ✅ Pushed a commit per user request

You can ask for changes by mentioning @DataDog in a comment.

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Jan 28, 2026

Codeowners resolved as

ddtrace/internal/datadog/profiling/stack/echion/echion/stack_chunk.h    @DataDog/profiling-python
ddtrace/internal/datadog/profiling/stack/src/echion/stack_chunk.cc      @DataDog/profiling-python
releasenotes/notes/profiling-guard-stack-chunk-recursion-f8e79bcbc4e91bdd.yaml  @DataDog/apm-python

@pr-commenter
Copy link

pr-commenter bot commented Jan 28, 2026

Performance SLOs

Comparing candidate dd/profiling-fix-stack-chunk-recursion-guard (ec849be) with baseline main (fad0a9c)

📈 Performance Regressions (2 suites)
📈 iastaspectsospath - 24/24

✅ ospathbasename_aspect

Time: ✅ 498.918µs (SLO: <700.000µs 📉 -28.7%) vs baseline: 📈 +18.1%

Memory: ✅ 42.546MB (SLO: <46.000MB -7.5%) vs baseline: +4.5%


✅ ospathbasename_noaspect

Time: ✅ 435.516µs (SLO: <700.000µs 📉 -37.8%) vs baseline: +0.2%

Memory: ✅ 42.664MB (SLO: <46.000MB -7.3%) vs baseline: +4.4%


✅ ospathjoin_aspect

Time: ✅ 630.326µs (SLO: <700.000µs -10.0%) vs baseline: ~same

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


✅ ospathjoin_noaspect

Time: ✅ 641.754µs (SLO: <700.000µs -8.3%) vs baseline: +0.5%

Memory: ✅ 42.605MB (SLO: <46.000MB -7.4%) vs baseline: +4.9%


✅ ospathnormcase_aspect

Time: ✅ 352.152µs (SLO: <700.000µs 📉 -49.7%) vs baseline: -0.5%

Memory: ✅ 42.664MB (SLO: <46.000MB -7.3%) vs baseline: +5.1%


✅ ospathnormcase_noaspect

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

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


✅ ospathsplit_aspect

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

Memory: ✅ 42.703MB (SLO: <46.000MB -7.2%) vs baseline: +5.1%


✅ ospathsplit_noaspect

Time: ✅ 509.357µs (SLO: <700.000µs 📉 -27.2%) vs baseline: +1.4%

Memory: ✅ 42.762MB (SLO: <46.000MB -7.0%) vs baseline: +4.9%


✅ ospathsplitdrive_aspect

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

Memory: ✅ 42.684MB (SLO: <46.000MB -7.2%) vs baseline: +5.0%


✅ ospathsplitdrive_noaspect

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

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


✅ ospathsplitext_aspect

Time: ✅ 457.559µs (SLO: <700.000µs 📉 -34.6%) vs baseline: -1.0%

Memory: ✅ 42.625MB (SLO: <46.000MB -7.3%) vs baseline: +4.9%


✅ ospathsplitext_noaspect

Time: ✅ 468.663µs (SLO: <700.000µs 📉 -33.0%) vs baseline: +0.2%

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


📈 telemetryaddmetric - 30/30

✅ 1-count-metric-1-times

Time: ✅ 3.374µs (SLO: <20.000µs 📉 -83.1%) vs baseline: 📈 +15.9%

Memory: ✅ 35.154MB (SLO: <38.000MB -7.5%) vs baseline: +4.7%


✅ 1-count-metrics-100-times

Time: ✅ 205.191µs (SLO: <220.000µs -6.7%) vs baseline: -0.2%

Memory: ✅ 35.193MB (SLO: <38.000MB -7.4%) vs baseline: +4.6%


✅ 1-distribution-metric-1-times

Time: ✅ 3.227µs (SLO: <20.000µs 📉 -83.9%) vs baseline: -1.2%

Memory: ✅ 35.016MB (SLO: <38.000MB -7.9%) vs baseline: +4.3%


✅ 1-distribution-metrics-100-times

Time: ✅ 212.797µs (SLO: <230.000µs -7.5%) vs baseline: -1.2%

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


✅ 1-gauge-metric-1-times

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

Memory: ✅ 35.154MB (SLO: <38.000MB -7.5%) vs baseline: +4.7%


✅ 1-gauge-metrics-100-times

Time: ✅ 135.670µs (SLO: <150.000µs -9.6%) vs baseline: -1.7%

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


✅ 1-rate-metric-1-times

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

Memory: ✅ 35.232MB (SLO: <38.000MB -7.3%) vs baseline: +5.0%


✅ 1-rate-metrics-100-times

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

Memory: ✅ 35.252MB (SLO: <38.000MB -7.2%) vs baseline: +5.0%


✅ 100-count-metrics-100-times

Time: ✅ 21.071ms (SLO: <22.000ms -4.2%) vs baseline: -0.3%

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


✅ 100-distribution-metrics-100-times

Time: ✅ 2.253ms (SLO: <2.550ms 📉 -11.6%) vs baseline: +0.6%

Memory: ✅ 35.507MB (SLO: <38.000MB -6.6%) vs baseline: +4.7%


✅ 100-gauge-metrics-100-times

Time: ✅ 1.423ms (SLO: <1.550ms -8.2%) vs baseline: +0.5%

Memory: ✅ 35.547MB (SLO: <38.000MB -6.5%) vs baseline: +5.9%


✅ 100-rate-metrics-100-times

Time: ✅ 2.275ms (SLO: <2.550ms 📉 -10.8%) vs baseline: -0.4%

Memory: ✅ 35.468MB (SLO: <38.000MB -6.7%) vs baseline: +5.5%


✅ flush-1-metric

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

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


✅ flush-100-metrics

Time: ✅ 174.522µs (SLO: <250.000µs 📉 -30.2%) vs baseline: ~same

Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.5%


✅ flush-1000-metrics

Time: ✅ 2.188ms (SLO: <2.500ms 📉 -12.5%) vs baseline: ~same

Memory: ✅ 36.333MB (SLO: <38.750MB -6.2%) vs baseline: +4.9%

🟡 Near SLO Breach (1 suite)
🟡 tracer - 6/6

✅ large

Time: ✅ 31.673ms (SLO: <32.950ms -3.9%) vs baseline: +0.6%

Memory: ✅ 36.825MB (SLO: <39.250MB -6.2%) vs baseline: +5.2%


✅ medium

Time: ✅ 3.135ms (SLO: <3.200ms -2.0%) vs baseline: +0.5%

Memory: ✅ 35.193MB (SLO: <38.750MB -9.2%) vs baseline: +4.9%


✅ small

Time: ✅ 363.662µs (SLO: <370.000µs 🟡 -1.7%) vs baseline: +3.6%

Memory: ✅ 35.311MB (SLO: <38.750MB -8.9%) vs baseline: +5.2%

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

⚠️ context_with_data_listeners

Time: ⚠️ 13.239µs (SLO: <20.000µs 📉 -33.8%) vs baseline: -0.4%

Memory: ✅ 35.154MB (SLO: <38.000MB -7.5%) vs baseline: +4.7%


✅ context_with_data_no_listeners

Time: ✅ 3.286µs (SLO: <10.000µs 📉 -67.1%) vs baseline: -0.6%

Memory: ✅ 35.114MB (SLO: <38.000MB -7.6%) vs baseline: +4.7%


✅ get_item_exists

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

Memory: ✅ 35.173MB (SLO: <38.000MB -7.4%) vs baseline: +5.0%


✅ get_item_missing

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

Memory: ✅ 35.291MB (SLO: <38.000MB -7.1%) vs baseline: +4.9%


✅ set_item

Time: ✅ 24.494µs (SLO: <30.000µs 📉 -18.4%) vs baseline: +2.3%

Memory: ✅ 35.212MB (SLO: <38.000MB -7.3%) vs baseline: +5.0%


⚠️ packagesupdateimporteddependencies - 24/24 (1 unstable)

✅ import_many

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

Memory: ✅ 39.966MB (SLO: <46.000MB 📉 -13.1%) vs baseline: +4.2%


✅ import_many_cached

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

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


✅ import_many_stdlib

Time: ✅ 0.762ms (SLO: <1.750ms 📉 -56.4%) vs baseline: +0.7%

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


⚠️ import_many_stdlib_cached

Time: ⚠️ 0.173ms (SLO: <1.100ms 📉 -84.2%) vs baseline: +0.1%

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


✅ import_many_unknown

Time: ✅ 838.056µs (SLO: <890.000µs -5.8%) vs baseline: +1.2%

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


✅ import_many_unknown_cached

Time: ✅ 788.023µs (SLO: <870.000µs -9.4%) vs baseline: -0.6%

Memory: ✅ 40.237MB (SLO: <46.000MB 📉 -12.5%) vs baseline: +4.4%


✅ import_one

Time: ✅ 20.035µs (SLO: <30.000µs 📉 -33.2%) vs baseline: +0.8%

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


✅ import_one_cache

Time: ✅ 6.311µs (SLO: <10.000µs 📉 -36.9%) vs baseline: -1.0%

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


✅ import_one_stdlib

Time: ✅ 18.890µs (SLO: <20.000µs -5.6%) vs baseline: +1.0%

Memory: ✅ 40.071MB (SLO: <46.000MB 📉 -12.9%) vs baseline: +5.0%


✅ import_one_stdlib_cache

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

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


✅ import_one_unknown

Time: ✅ 45.581µs (SLO: <50.000µs -8.8%) vs baseline: +0.2%

Memory: ✅ 39.823MB (SLO: <46.000MB 📉 -13.4%) vs baseline: +3.3%


✅ import_one_unknown_cache

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

Memory: ✅ 40.240MB (SLO: <43.000MB -6.4%) vs baseline: +4.8%

✅ All Tests Passing (19 suites)
djangosimple - 30/30

✅ appsec

Time: ✅ 19.521ms (SLO: <22.300ms 📉 -12.5%) vs baseline: +0.3%

Memory: ✅ 68.870MB (SLO: <73.500MB -6.3%) vs baseline: +5.1%


✅ exception-replay-enabled

Time: ✅ 1.390ms (SLO: <1.450ms -4.2%) vs baseline: +0.6%

Memory: ✅ 66.889MB (SLO: <71.500MB -6.4%) vs baseline: +4.9%


✅ iast

Time: ✅ 19.443ms (SLO: <22.250ms 📉 -12.6%) vs baseline: -0.7%

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


✅ profiler

Time: ✅ 15.315ms (SLO: <16.550ms -7.5%) vs baseline: +0.3%

Memory: ✅ 56.944MB (SLO: <61.000MB -6.6%) vs baseline: +4.8%


✅ resource-renaming

Time: ✅ 19.513ms (SLO: <21.750ms 📉 -10.3%) vs baseline: +0.4%

Memory: ✅ 68.765MB (SLO: <73.500MB -6.4%) vs baseline: +4.8%


✅ span-code-origin

Time: ✅ 20.089ms (SLO: <28.200ms 📉 -28.8%) vs baseline: +1.8%

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


✅ tracer

Time: ✅ 19.582ms (SLO: <21.750ms -10.0%) vs baseline: ~same

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


✅ tracer-and-profiler

Time: ✅ 21.603ms (SLO: <23.500ms -8.1%) vs baseline: +0.2%

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


✅ tracer-dont-create-db-spans

Time: ✅ 19.685ms (SLO: <21.500ms -8.4%) vs baseline: +0.4%

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


✅ tracer-minimal

Time: ✅ 16.755ms (SLO: <17.500ms -4.3%) vs baseline: -0.4%

Memory: ✅ 68.734MB (SLO: <75.000MB -8.4%) vs baseline: +4.6%


✅ tracer-native

Time: ✅ 19.421ms (SLO: <21.750ms 📉 -10.7%) vs baseline: -0.3%

Memory: ✅ 68.773MB (SLO: <72.500MB -5.1%) vs baseline: +4.8%


✅ tracer-no-caches

Time: ✅ 17.658ms (SLO: <19.650ms 📉 -10.1%) vs baseline: +0.7%

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


✅ tracer-no-databases

Time: ✅ 19.225ms (SLO: <20.100ms -4.4%) vs baseline: +0.3%

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


✅ tracer-no-middleware

Time: ✅ 19.288ms (SLO: <21.500ms 📉 -10.3%) vs baseline: +0.2%

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


✅ tracer-no-templates

Time: ✅ 19.439ms (SLO: <22.000ms 📉 -11.6%) vs baseline: +0.2%

Memory: ✅ 68.806MB (SLO: <73.500MB -6.4%) vs baseline: +4.8%


errortrackingdjangosimple - 6/6

✅ errortracking-enabled-all

Time: ✅ 16.290ms (SLO: <19.850ms 📉 -17.9%) vs baseline: -0.6%

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


✅ errortracking-enabled-user

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

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


✅ tracer-enabled

Time: ✅ 16.343ms (SLO: <19.450ms 📉 -16.0%) vs baseline: -0.2%

Memory: ✅ 70.621MB (SLO: <75.000MB -5.8%) vs baseline: +5.1%


errortrackingflasksqli - 6/6

✅ errortracking-enabled-all

Time: ✅ 2.090ms (SLO: <2.300ms -9.1%) vs baseline: -0.3%

Memory: ✅ 56.250MB (SLO: <60.000MB -6.3%) vs baseline: +5.0%


✅ errortracking-enabled-user

Time: ✅ 2.099ms (SLO: <2.250ms -6.7%) vs baseline: ~same

Memory: ✅ 56.171MB (SLO: <60.000MB -6.4%) vs baseline: +4.8%


✅ tracer-enabled

Time: ✅ 2.092ms (SLO: <2.300ms -9.0%) vs baseline: ~same

Memory: ✅ 56.230MB (SLO: <60.000MB -6.3%) vs baseline: +4.9%


flasksimple - 18/18

✅ appsec-get

Time: ✅ 3.405ms (SLO: <4.750ms 📉 -28.3%) vs baseline: -0.1%

Memory: ✅ 56.237MB (SLO: <66.500MB 📉 -15.4%) vs baseline: +4.7%


✅ appsec-post

Time: ✅ 2.896ms (SLO: <6.750ms 📉 -57.1%) vs baseline: +0.3%

Memory: ✅ 56.216MB (SLO: <66.500MB 📉 -15.5%) vs baseline: +4.7%


✅ appsec-telemetry

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

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


✅ debugger

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

Memory: ✅ 48.263MB (SLO: <51.500MB -6.3%) vs baseline: +5.2%


✅ iast-get

Time: ✅ 1.858ms (SLO: <2.000ms -7.1%) vs baseline: -0.3%

Memory: ✅ 45.313MB (SLO: <49.000MB -7.5%) vs baseline: +5.0%


✅ profiler

Time: ✅ 1.899ms (SLO: <2.100ms -9.6%) vs baseline: ~same

Memory: ✅ 49.286MB (SLO: <52.500MB -6.1%) vs baseline: +4.9%


✅ resource-renaming

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

Memory: ✅ 56.262MB (SLO: <60.000MB -6.2%) vs baseline: +4.8%


✅ tracer

Time: ✅ 3.399ms (SLO: <3.650ms -6.9%) vs baseline: ~same

Memory: ✅ 56.284MB (SLO: <60.000MB -6.2%) vs baseline: +4.8%


✅ tracer-native

Time: ✅ 3.399ms (SLO: <3.650ms -6.9%) vs baseline: +0.3%

Memory: ✅ 56.285MB (SLO: <60.000MB -6.2%) vs baseline: +4.8%


flasksqli - 6/6

✅ appsec-enabled

Time: ✅ 2.094ms (SLO: <4.200ms 📉 -50.2%) vs baseline: +0.5%

Memory: ✅ 56.171MB (SLO: <66.000MB 📉 -14.9%) vs baseline: +4.8%


✅ iast-enabled

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

Memory: ✅ 56.210MB (SLO: <62.500MB 📉 -10.1%) vs baseline: +4.6%


✅ tracer-enabled

Time: ✅ 2.085ms (SLO: <2.250ms -7.3%) vs baseline: -0.3%

Memory: ✅ 56.269MB (SLO: <60.000MB -6.2%) vs baseline: +5.0%


httppropagationextract - 60/60

✅ all_styles_all_headers

Time: ✅ 80.643µs (SLO: <100.000µs 📉 -19.4%) vs baseline: +0.1%

Memory: ✅ 35.429MB (SLO: <38.000MB -6.8%) vs baseline: +4.6%


✅ b3_headers

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

Memory: ✅ 35.252MB (SLO: <38.000MB -7.2%) vs baseline: +4.9%


✅ b3_single_headers

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

Memory: ✅ 35.311MB (SLO: <38.000MB -7.1%) vs baseline: +4.8%


✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match

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

Memory: ✅ 35.311MB (SLO: <38.000MB -7.1%) vs baseline: +3.8%


✅ datadog_tracecontext_tracestate_propagated_on_trace_id_match

Time: ✅ 69.075µs (SLO: <80.000µs 📉 -13.7%) vs baseline: +4.6%

Memory: ✅ 35.232MB (SLO: <38.000MB -7.3%) vs baseline: +3.8%


✅ empty_headers

Time: ✅ 1.620µs (SLO: <10.000µs 📉 -83.8%) vs baseline: +1.4%

Memory: ✅ 35.586MB (SLO: <38.000MB -6.4%) vs baseline: +4.5%


✅ full_t_id_datadog_headers

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

Memory: ✅ 35.330MB (SLO: <38.000MB -7.0%) vs baseline: +5.2%


✅ invalid_priority_header

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

Memory: ✅ 35.665MB (SLO: <38.000MB -6.1%) vs baseline: +4.9%


✅ invalid_span_id_header

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

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


✅ invalid_tags_header

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

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


✅ invalid_trace_id_header

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

Memory: ✅ 35.704MB (SLO: <38.000MB -6.0%) vs baseline: +4.8%


✅ large_header_no_matches

Time: ✅ 27.499µs (SLO: <30.000µs -8.3%) vs baseline: -0.4%

Memory: ✅ 35.606MB (SLO: <38.000MB -6.3%) vs baseline: +4.5%


✅ large_valid_headers_all

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

Memory: ✅ 35.625MB (SLO: <38.000MB -6.2%) vs baseline: +4.7%


✅ medium_header_no_matches

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

Memory: ✅ 35.625MB (SLO: <38.000MB -6.2%) vs baseline: +4.5%


✅ medium_valid_headers_all

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

Memory: ✅ 35.724MB (SLO: <38.000MB -6.0%) vs baseline: +4.9%


✅ none_propagation_style

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

Memory: ✅ 35.606MB (SLO: <38.000MB -6.3%) vs baseline: +4.7%


✅ tracecontext_headers

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

Memory: ✅ 35.389MB (SLO: <38.000MB -6.9%) vs baseline: +4.9%


✅ valid_headers_all

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

Memory: ✅ 35.684MB (SLO: <38.000MB -6.1%) vs baseline: +4.9%


✅ valid_headers_basic

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

Memory: ✅ 35.743MB (SLO: <38.000MB -5.9%) vs baseline: +5.0%


✅ wsgi_empty_headers

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

Memory: ✅ 35.645MB (SLO: <38.000MB -6.2%) vs baseline: +4.6%


✅ wsgi_invalid_priority_header

Time: ✅ 6.589µs (SLO: <10.000µs 📉 -34.1%) vs baseline: -1.0%

Memory: ✅ 35.606MB (SLO: <38.000MB -6.3%) vs baseline: +4.6%


✅ wsgi_invalid_span_id_header

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

Memory: ✅ 35.665MB (SLO: <38.000MB -6.1%) vs baseline: +5.0%


✅ wsgi_invalid_tags_header

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

Memory: ✅ 35.606MB (SLO: <38.000MB -6.3%) vs baseline: +4.8%


✅ wsgi_invalid_trace_id_header

Time: ✅ 6.708µs (SLO: <10.000µs 📉 -32.9%) vs baseline: +1.7%

Memory: ✅ 35.684MB (SLO: <38.000MB -6.1%) vs baseline: +4.3%


✅ wsgi_large_header_no_matches

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

Memory: ✅ 35.684MB (SLO: <38.000MB -6.1%) vs baseline: +4.8%


✅ wsgi_large_valid_headers_all

Time: ✅ 29.986µs (SLO: <40.000µs 📉 -25.0%) vs baseline: +0.5%

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


✅ wsgi_medium_header_no_matches

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

Memory: ✅ 35.665MB (SLO: <38.000MB -6.1%) vs baseline: +4.9%


✅ wsgi_medium_valid_headers_all

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

Memory: ✅ 35.802MB (SLO: <38.000MB -5.8%) vs baseline: +5.0%


✅ wsgi_valid_headers_all

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

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


✅ wsgi_valid_headers_basic

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

Memory: ✅ 35.724MB (SLO: <38.000MB -6.0%) vs baseline: +4.9%


httppropagationinject - 16/16

✅ ids_only

Time: ✅ 21.822µs (SLO: <30.000µs 📉 -27.3%) vs baseline: +5.2%

Memory: ✅ 35.665MB (SLO: <38.000MB -6.1%) vs baseline: +5.0%


✅ with_all

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

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


✅ with_dd_origin

Time: ✅ 24.404µs (SLO: <30.000µs 📉 -18.7%) vs baseline: -0.2%

Memory: ✅ 35.232MB (SLO: <38.000MB -7.3%) vs baseline: +4.7%


✅ with_priority_and_origin

Time: ✅ 23.826µs (SLO: <40.000µs 📉 -40.4%) vs baseline: -0.7%

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


✅ with_sampling_priority

Time: ✅ 20.548µs (SLO: <30.000µs 📉 -31.5%) vs baseline: -0.9%

Memory: ✅ 35.448MB (SLO: <38.000MB -6.7%) vs baseline: +4.9%


✅ with_tags

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

Memory: ✅ 35.271MB (SLO: <38.000MB -7.2%) vs baseline: +5.0%


✅ with_tags_invalid

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

Memory: ✅ 35.271MB (SLO: <38.000MB -7.2%) vs baseline: +5.0%


✅ with_tags_max_size

Time: ✅ 26.289µs (SLO: <40.000µs 📉 -34.3%) vs baseline: -0.1%

Memory: ✅ 35.330MB (SLO: <38.000MB -7.0%) vs baseline: +4.8%


iast_aspects - 40/40

✅ re_expand_aspect

Time: ✅ 3.703ms (SLO: <4.880ms 📉 -24.1%) vs baseline: +6.4%

Memory: ✅ 42.585MB (SLO: <46.000MB -7.4%) vs baseline: +5.0%


✅ re_expand_noaspect

Time: ✅ 3.489ms (SLO: <4.620ms 📉 -24.5%) vs baseline: +0.4%

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


✅ re_findall_aspect

Time: ✅ 337.296µs (SLO: <450.000µs 📉 -25.0%) vs baseline: +0.2%

Memory: ✅ 42.802MB (SLO: <46.000MB -7.0%) vs baseline: +5.1%


✅ re_findall_noaspect

Time: ✅ 320.652µs (SLO: <430.000µs 📉 -25.4%) vs baseline: -0.2%

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


✅ re_finditer_aspect

Time: ✅ 447.885µs (SLO: <590.000µs 📉 -24.1%) vs baseline: +0.5%

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +5.7%


✅ re_finditer_noaspect

Time: ✅ 322.230µs (SLO: <440.000µs 📉 -26.8%) vs baseline: -1.2%

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


✅ re_fullmatch_aspect

Time: ✅ 272.828µs (SLO: <360.000µs 📉 -24.2%) vs baseline: -0.3%

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


✅ re_fullmatch_noaspect

Time: ✅ 302.581µs (SLO: <400.000µs 📉 -24.4%) vs baseline: ~same

Memory: ✅ 42.703MB (SLO: <46.000MB -7.2%)


✅ re_group_aspect

Time: ✅ 474.001µs (SLO: <630.000µs 📉 -24.8%) vs baseline: +0.3%

Memory: ✅ 42.684MB (SLO: <46.000MB -7.2%) vs baseline: +5.0%


✅ re_group_noaspect

Time: ✅ 477.847µs (SLO: <640.000µs 📉 -25.3%) vs baseline: -0.7%

Memory: ✅ 42.723MB (SLO: <46.000MB -7.1%) vs baseline: +5.1%


✅ re_groups_aspect

Time: ✅ 486.400µs (SLO: <650.000µs 📉 -25.2%) vs baseline: -0.2%

Memory: ✅ 42.762MB (SLO: <46.000MB -7.0%) vs baseline: +5.2%


✅ re_groups_noaspect

Time: ✅ 489.928µs (SLO: <650.000µs 📉 -24.6%) vs baseline: -0.1%

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


✅ re_match_aspect

Time: ✅ 276.873µs (SLO: <370.000µs 📉 -25.2%) vs baseline: -0.3%

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


✅ re_match_noaspect

Time: ✅ 302.527µs (SLO: <410.000µs 📉 -26.2%) vs baseline: -0.6%

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


✅ re_search_aspect

Time: ✅ 266.149µs (SLO: <350.000µs 📉 -24.0%) vs baseline: +2.5%

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


✅ re_search_noaspect

Time: ✅ 286.522µs (SLO: <380.000µs 📉 -24.6%) vs baseline: +1.0%

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


✅ re_sub_aspect

Time: ✅ 352.208µs (SLO: <460.000µs 📉 -23.4%) vs baseline: +0.2%

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


✅ re_sub_noaspect

Time: ✅ 392.896µs (SLO: <520.000µs 📉 -24.4%) vs baseline: +0.1%

Memory: ✅ 42.684MB (SLO: <46.000MB -7.2%) vs baseline: +5.1%


✅ re_subn_aspect

Time: ✅ 373.941µs (SLO: <490.000µs 📉 -23.7%) vs baseline: +0.4%

Memory: ✅ 42.644MB (SLO: <46.000MB -7.3%) vs baseline: +4.9%


✅ re_subn_noaspect

Time: ✅ 410.794µs (SLO: <530.000µs 📉 -22.5%) vs baseline: +0.9%

Memory: ✅ 42.723MB (SLO: <46.000MB -7.1%) vs baseline: +5.2%


iastaspects - 118/118

✅ add_aspect

Time: ✅ 108.658µs (SLO: <130.000µs 📉 -16.4%) vs baseline: +3.4%

Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0%


✅ add_inplace_aspect

Time: ✅ 106.728µs (SLO: <130.000µs 📉 -17.9%) vs baseline: +0.9%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ add_inplace_noaspect

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

Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.8%


✅ add_noaspect

Time: ✅ 49.085µs (SLO: <70.000µs 📉 -29.9%) vs baseline: -0.1%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ bytearray_aspect

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

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ bytearray_extend_aspect

Time: ✅ 643.300µs (SLO: <800.000µs 📉 -19.6%) vs baseline: +0.6%

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ bytearray_extend_noaspect

Time: ✅ 269.029µs (SLO: <400.000µs 📉 -32.7%) vs baseline: +0.4%

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


✅ bytearray_noaspect

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

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


✅ bytes_aspect

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

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0%


✅ bytes_noaspect

Time: ✅ 133.130µs (SLO: <200.000µs 📉 -33.4%) vs baseline: -1.4%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ bytesio_aspect

Time: ✅ 3.905ms (SLO: <5.000ms 📉 -21.9%) vs baseline: -0.2%

Memory: ✅ 42.880MB (SLO: <46.000MB -6.8%) vs baseline: +4.9%


✅ bytesio_noaspect

Time: ✅ 314.754µs (SLO: <420.000µs 📉 -25.1%) vs baseline: -0.4%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ capitalize_aspect

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

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


✅ capitalize_noaspect

Time: ✅ 252.191µs (SLO: <300.000µs 📉 -15.9%) vs baseline: +0.2%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ casefold_aspect

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

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


✅ casefold_noaspect

Time: ✅ 311.750µs (SLO: <500.000µs 📉 -37.6%) vs baseline: -0.6%

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ decode_aspect

Time: ✅ 87.630µs (SLO: <100.000µs 📉 -12.4%) vs baseline: +0.2%

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


✅ decode_noaspect

Time: ✅ 151.752µs (SLO: <210.000µs 📉 -27.7%) vs baseline: -0.2%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ encode_aspect

Time: ✅ 85.015µs (SLO: <200.000µs 📉 -57.5%) vs baseline: -0.2%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +5.0%


✅ encode_noaspect

Time: ✅ 138.449µs (SLO: <200.000µs 📉 -30.8%) vs baseline: +1.0%

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0%


✅ format_aspect

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

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


✅ format_map_aspect

Time: ✅ 16.551ms (SLO: <21.500ms 📉 -23.0%) vs baseline: +0.5%

Memory: ✅ 43.096MB (SLO: <46.000MB -6.3%) vs baseline: +4.9%


✅ format_map_noaspect

Time: ✅ 375.647µs (SLO: <500.000µs 📉 -24.9%) vs baseline: +1.8%

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.8%


✅ format_noaspect

Time: ✅ 311.557µs (SLO: <500.000µs 📉 -37.7%) vs baseline: +0.9%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ index_aspect

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

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ index_noaspect

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

Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0%


✅ join_aspect

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

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0%


✅ join_noaspect

Time: ✅ 144.790µs (SLO: <300.000µs 📉 -51.7%) vs baseline: +1.6%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ ljust_aspect

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

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ ljust_noaspect

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

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ lower_aspect

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

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ lower_noaspect

Time: ✅ 237.190µs (SLO: <300.000µs 📉 -20.9%) vs baseline: +0.1%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ lstrip_aspect

Time: ✅ 0.271ms (SLO: <3.000ms 📉 -91.0%) vs baseline: +0.3%

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ lstrip_noaspect

Time: ✅ 0.177ms (SLO: <3.000ms 📉 -94.1%) vs baseline: +0.7%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ modulo_aspect

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

Memory: ✅ 43.116MB (SLO: <46.000MB -6.3%) vs baseline: +4.8%


✅ modulo_aspect_for_bytearray_bytearray

Time: ✅ 14.899ms (SLO: <19.350ms 📉 -23.0%) vs baseline: +0.2%

Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +4.3%


✅ modulo_aspect_for_bytes

Time: ✅ 14.498ms (SLO: <18.900ms 📉 -23.3%) vs baseline: +0.3%

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


✅ modulo_aspect_for_bytes_bytearray

Time: ✅ 14.711ms (SLO: <19.150ms 📉 -23.2%) vs baseline: +0.3%

Memory: ✅ 43.116MB (SLO: <46.000MB -6.3%) vs baseline: +4.8%


✅ modulo_noaspect

Time: ✅ 0.377ms (SLO: <3.000ms 📉 -87.4%) vs baseline: +1.6%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ replace_aspect

Time: ✅ 18.466ms (SLO: <24.000ms 📉 -23.1%) vs baseline: -0.3%

Memory: ✅ 43.136MB (SLO: <46.000MB -6.2%) vs baseline: +4.9%


✅ replace_noaspect

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

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ repr_aspect

Time: ✅ 308.846µs (SLO: <420.000µs 📉 -26.5%) vs baseline: -0.5%

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ repr_noaspect

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

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.8%


✅ rstrip_aspect

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

Memory: ✅ 42.979MB (SLO: <46.000MB -6.6%) vs baseline: +5.0%


✅ rstrip_noaspect

Time: ✅ 190.272µs (SLO: <300.000µs 📉 -36.6%) vs baseline: +3.6%

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ slice_aspect

Time: ✅ 185.470µs (SLO: <300.000µs 📉 -38.2%) vs baseline: -0.2%

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ slice_noaspect

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

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%)


✅ stringio_aspect

Time: ✅ 3.938ms (SLO: <5.000ms 📉 -21.2%) vs baseline: -0.3%

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


✅ stringio_noaspect

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

Memory: ✅ 42.920MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ strip_aspect

Time: ✅ 268.241µs (SLO: <350.000µs 📉 -23.4%) vs baseline: -0.1%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.9%


✅ strip_noaspect

Time: ✅ 178.637µs (SLO: <240.000µs 📉 -25.6%) vs baseline: +2.0%

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9%


✅ swapcase_aspect

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

Memory: ✅ 42.900MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


✅ swapcase_noaspect

Time: ✅ 274.618µs (SLO: <400.000µs 📉 -31.3%) vs baseline: -0.2%

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +4.9%


✅ title_aspect

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

Memory: ✅ 42.959MB (SLO: <46.000MB -6.6%) vs baseline: +5.0%


✅ title_noaspect

Time: ✅ 259.778µs (SLO: <400.000µs 📉 -35.1%) vs baseline: -1.0%

Memory: ✅ 42.998MB (SLO: <46.000MB -6.5%) vs baseline: +5.0%


✅ translate_aspect

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

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +5.0%


✅ translate_noaspect

Time: ✅ 426.951µs (SLO: <500.000µs 📉 -14.6%) vs baseline: -0.8%

Memory: ✅ 43.018MB (SLO: <46.000MB -6.5%) vs baseline: +5.0%


✅ upper_aspect

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

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +5.0%


✅ upper_noaspect

Time: ✅ 234.719µs (SLO: <400.000µs 📉 -41.3%) vs baseline: -0.4%

Memory: ✅ 42.939MB (SLO: <46.000MB -6.7%) vs baseline: +4.8%


iastaspectssplit - 12/12

✅ rsplit_aspect

Time: ✅ 160.483µs (SLO: <250.000µs 📉 -35.8%) vs baseline: +5.6%

Memory: ✅ 42.566MB (SLO: <46.000MB -7.5%) vs baseline: +4.9%


✅ rsplit_noaspect

Time: ✅ 157.975µs (SLO: <250.000µs 📉 -36.8%) vs baseline: -0.3%

Memory: ✅ 42.625MB (SLO: <46.000MB -7.3%) vs baseline: +4.8%


✅ split_aspect

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

Memory: ✅ 42.762MB (SLO: <46.000MB -7.0%) vs baseline: +4.8%


✅ split_noaspect

Time: ✅ 157.347µs (SLO: <250.000µs 📉 -37.1%) vs baseline: +0.6%

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


✅ splitlines_aspect

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

Memory: ✅ 42.664MB (SLO: <46.000MB -7.3%) vs baseline: +5.2%


✅ splitlines_noaspect

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

Memory: ✅ 42.507MB (SLO: <46.000MB -7.6%) vs baseline: +4.9%


iastpropagation - 8/8

✅ no-propagation

Time: ✅ 48.069µs (SLO: <60.000µs 📉 -19.9%) vs baseline: -1.3%

Memory: ✅ 38.987MB (SLO: <42.000MB -7.2%) vs baseline: +4.9%


✅ propagation_enabled

Time: ✅ 133.857µs (SLO: <190.000µs 📉 -29.5%) vs baseline: -0.9%

Memory: ✅ 38.987MB (SLO: <42.000MB -7.2%) vs baseline: +4.6%


✅ propagation_enabled_100

Time: ✅ 1.546ms (SLO: <2.300ms 📉 -32.8%) vs baseline: +0.3%

Memory: ✅ 38.987MB (SLO: <42.000MB -7.2%) vs baseline: +4.9%


✅ propagation_enabled_1000

Time: ✅ 28.987ms (SLO: <34.550ms 📉 -16.1%) vs baseline: +0.7%

Memory: ✅ 39.007MB (SLO: <42.000MB -7.1%) vs baseline: +5.0%


otelsdkspan - 24/24

✅ add-event

Time: ✅ 40.428ms (SLO: <42.000ms -3.7%) vs baseline: ~same

Memory: ✅ 38.024MB (SLO: <40.750MB -6.7%) vs baseline: +4.7%


✅ add-link

Time: ✅ 36.406ms (SLO: <38.550ms -5.6%) vs baseline: +0.2%

Memory: ✅ 38.063MB (SLO: <40.750MB -6.6%) vs baseline: +4.9%


✅ add-metrics

Time: ✅ 218.933ms (SLO: <232.000ms -5.6%) vs baseline: -0.3%

Memory: ✅ 38.142MB (SLO: <40.750MB -6.4%) vs baseline: +4.9%


✅ add-tags

Time: ✅ 211.537ms (SLO: <221.600ms -4.5%) vs baseline: +0.4%

Memory: ✅ 38.142MB (SLO: <40.750MB -6.4%) vs baseline: +5.0%


✅ get-context

Time: ✅ 29.279ms (SLO: <31.300ms -6.5%) vs baseline: +0.3%

Memory: ✅ 38.122MB (SLO: <40.750MB -6.4%) vs baseline: +4.9%


✅ is-recording

Time: ✅ 29.424ms (SLO: <31.000ms -5.1%) vs baseline: +0.5%

Memory: ✅ 38.083MB (SLO: <40.750MB -6.5%) vs baseline: +4.7%


✅ record-exception

Time: ✅ 63.063ms (SLO: <65.850ms -4.2%) vs baseline: ~same

Memory: ✅ 38.024MB (SLO: <40.750MB -6.7%) vs baseline: +4.6%


✅ set-status

Time: ✅ 31.773ms (SLO: <34.150ms -7.0%) vs baseline: -0.3%

Memory: ✅ 38.044MB (SLO: <40.750MB -6.6%) vs baseline: +4.9%


✅ start

Time: ✅ 29.514ms (SLO: <30.150ms -2.1%) vs baseline: +2.4%

Memory: ✅ 38.044MB (SLO: <40.750MB -6.6%) vs baseline: +4.8%


✅ start-finish

Time: ✅ 34.258ms (SLO: <35.350ms -3.1%) vs baseline: +0.9%

Memory: ✅ 38.103MB (SLO: <40.750MB -6.5%) vs baseline: +4.7%


✅ start-finish-telemetry

Time: ✅ 34.095ms (SLO: <35.450ms -3.8%) vs baseline: -0.2%

Memory: ✅ 38.103MB (SLO: <40.750MB -6.5%) vs baseline: +4.9%


✅ update-name

Time: ✅ 31.073ms (SLO: <33.400ms -7.0%) vs baseline: +0.5%

Memory: ✅ 38.083MB (SLO: <40.750MB -6.5%) vs baseline: +4.8%


otelspan - 22/22

✅ add-event

Time: ✅ 43.434ms (SLO: <47.150ms -7.9%) vs baseline: +0.7%

Memory: ✅ 40.469MB (SLO: <47.000MB 📉 -13.9%) vs baseline: +5.0%


✅ add-metrics

Time: ✅ 259.480ms (SLO: <344.800ms 📉 -24.7%) vs baseline: -0.8%

Memory: ✅ 44.886MB (SLO: <47.500MB -5.5%) vs baseline: +4.8%


✅ add-tags

Time: ✅ 318.512ms (SLO: <330.000ms -3.5%) vs baseline: ~same

Memory: ✅ 44.869MB (SLO: <47.500MB -5.5%) vs baseline: +5.0%


✅ get-context

Time: ✅ 83.113ms (SLO: <92.350ms 📉 -10.0%) vs baseline: +0.2%

Memory: ✅ 40.685MB (SLO: <46.500MB 📉 -12.5%) vs baseline: +5.0%


✅ is-recording

Time: ✅ 39.557ms (SLO: <44.500ms 📉 -11.1%) vs baseline: +0.6%

Memory: ✅ 40.172MB (SLO: <47.500MB 📉 -15.4%) vs baseline: +4.6%


✅ record-exception

Time: ✅ 61.935ms (SLO: <67.650ms -8.4%) vs baseline: -0.4%

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


✅ set-status

Time: ✅ 45.914ms (SLO: <50.400ms -8.9%) vs baseline: ~same

Memory: ✅ 40.215MB (SLO: <47.000MB 📉 -14.4%) vs baseline: +4.8%


✅ start

Time: ✅ 40.019ms (SLO: <43.450ms -7.9%) vs baseline: +3.9%

Memory: ✅ 40.190MB (SLO: <47.000MB 📉 -14.5%) vs baseline: +4.8%


✅ start-finish

Time: ✅ 86.853ms (SLO: <90.000ms -3.5%) vs baseline: +0.2%

Memory: ✅ 37.768MB (SLO: <46.500MB 📉 -18.8%) vs baseline: +4.6%


✅ start-finish-telemetry

Time: ✅ 88.580ms (SLO: <91.000ms -2.7%) vs baseline: +0.2%

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


✅ update-name

Time: ✅ 40.471ms (SLO: <45.150ms 📉 -10.4%) vs baseline: +1.0%

Memory: ✅ 40.234MB (SLO: <47.000MB 📉 -14.4%) vs baseline: +4.5%


packagespackageforrootmodulemapping - 4/4

✅ cache_off

Time: ✅ 341.598ms (SLO: <354.300ms -3.6%) vs baseline: ~same

Memory: ✅ 40.754MB (SLO: <46.000MB 📉 -11.4%) vs baseline: +3.9%


✅ cache_on

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

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


ratelimiter - 12/12

✅ defaults

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

Memory: ✅ 35.468MB (SLO: <38.000MB -6.7%) vs baseline: +4.9%


✅ high_rate_limit

Time: ✅ 2.431µs (SLO: <10.000µs 📉 -75.7%) vs baseline: -1.0%

Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.9%


✅ long_window

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

Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.8%


✅ low_rate_limit

Time: ✅ 2.369µs (SLO: <10.000µs 📉 -76.3%) vs baseline: -1.3%

Memory: ✅ 35.468MB (SLO: <38.000MB -6.7%) vs baseline: +4.7%


✅ no_rate_limit

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

Memory: ✅ 35.507MB (SLO: <38.000MB -6.6%) vs baseline: +4.7%


✅ short_window

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

Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.7%


recursivecomputation - 8/8

✅ deep

Time: ✅ 310.505ms (SLO: <320.950ms -3.3%) vs baseline: +0.3%

Memory: ✅ 36.392MB (SLO: <38.750MB -6.1%) vs baseline: +4.7%


✅ deep-profiled

Time: ✅ 327.180ms (SLO: <359.150ms -8.9%) vs baseline: ~same

Memory: ✅ 40.383MB (SLO: <46.000MB 📉 -12.2%) vs baseline: +4.8%


✅ medium

Time: ✅ 7.149ms (SLO: <7.400ms -3.4%) vs baseline: ~same

Memory: ✅ 35.527MB (SLO: <38.000MB -6.5%) vs baseline: +4.9%


✅ shallow

Time: ✅ 0.988ms (SLO: <1.050ms -5.9%) vs baseline: +1.8%

Memory: ✅ 35.252MB (SLO: <38.000MB -7.2%) vs baseline: +5.0%


samplingrules - 8/8

✅ average_match

Time: ✅ 146.119µs (SLO: <290.000µs 📉 -49.6%) vs baseline: -0.2%

Memory: ✅ 35.212MB (SLO: <38.000MB -7.3%) vs baseline: +5.0%


✅ high_match

Time: ✅ 191.625µs (SLO: <480.000µs 📉 -60.1%) vs baseline: +0.3%

Memory: ✅ 35.232MB (SLO: <38.000MB -7.3%) vs baseline: +5.0%


✅ low_match

Time: ✅ 99.853µs (SLO: <120.000µs 📉 -16.8%) vs baseline: +0.4%

Memory: ✅ 732.291MB (SLO: <780.000MB -6.1%) vs baseline: +4.9%


✅ very_low_match

Time: ✅ 2.875ms (SLO: <8.500ms 📉 -66.2%) vs baseline: +0.7%

Memory: ✅ 79.869MB (SLO: <85.000MB -6.0%) vs baseline: +5.0%


sethttpmeta - 32/32

✅ all-disabled

Time: ✅ 10.602µs (SLO: <20.000µs 📉 -47.0%) vs baseline: +0.7%

Memory: ✅ 36.097MB (SLO: <38.750MB -6.8%) vs baseline: +4.7%


✅ all-enabled

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

Memory: ✅ 36.137MB (SLO: <38.750MB -6.7%) vs baseline: +5.1%


✅ collectipvariant_exists

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

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


✅ no-collectipvariant

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

Memory: ✅ 36.097MB (SLO: <38.750MB -6.8%) vs baseline: +4.9%


✅ no-useragentvariant

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

Memory: ✅ 35.999MB (SLO: <38.750MB -7.1%) vs baseline: +4.7%


✅ obfuscation-no-query

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

Memory: ✅ 36.058MB (SLO: <38.750MB -6.9%) vs baseline: +4.9%


✅ obfuscation-regular-case-explicit-query

Time: ✅ 75.524µs (SLO: <90.000µs 📉 -16.1%) vs baseline: -0.4%

Memory: ✅ 36.137MB (SLO: <38.750MB -6.7%) vs baseline: +4.6%


✅ obfuscation-regular-case-implicit-query

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

Memory: ✅ 36.176MB (SLO: <38.750MB -6.6%) vs baseline: +4.9%


✅ obfuscation-send-querystring-disabled

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

Memory: ✅ 36.078MB (SLO: <38.750MB -6.9%) vs baseline: +4.6%


✅ obfuscation-worst-case-explicit-query

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

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


✅ obfuscation-worst-case-implicit-query

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

Memory: ✅ 36.196MB (SLO: <38.750MB -6.6%) vs baseline: +5.4%


✅ useragentvariant_exists_1

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

Memory: ✅ 36.078MB (SLO: <38.750MB -6.9%) vs baseline: +4.9%


✅ useragentvariant_exists_2

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

Memory: ✅ 36.137MB (SLO: <38.750MB -6.7%) vs baseline: +5.1%


✅ useragentvariant_exists_3

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

Memory: ✅ 36.019MB (SLO: <38.750MB -7.0%) vs baseline: +4.9%


✅ useragentvariant_not_exists_1

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

Memory: ✅ 36.058MB (SLO: <38.750MB -6.9%) vs baseline: +4.7%


✅ useragentvariant_not_exists_2

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

Memory: ✅ 36.019MB (SLO: <38.750MB -7.0%) vs baseline: +4.7%


span - 26/26

✅ add-event

Time: ✅ 20.272ms (SLO: <22.500ms -9.9%) vs baseline: ~same

Memory: ✅ 37.561MB (SLO: <53.000MB 📉 -29.1%) vs baseline: +4.4%


✅ add-metrics

Time: ✅ 89.865ms (SLO: <93.500ms -3.9%) vs baseline: +0.1%

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


✅ add-tags

Time: ✅ 144.558ms (SLO: <155.000ms -6.7%) vs baseline: ~same

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


✅ get-context

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

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


✅ is-recording

Time: ✅ 18.480ms (SLO: <20.500ms -9.9%) vs baseline: -0.2%

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


✅ record-exception

Time: ✅ 39.781ms (SLO: <41.000ms -3.0%) vs baseline: -0.3%

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


✅ set-status

Time: ✅ 19.905ms (SLO: <22.000ms -9.5%) vs baseline: +0.6%

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


✅ start

Time: ✅ 18.781ms (SLO: <20.500ms -8.4%) vs baseline: +3.5%

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


✅ start-finish

Time: ✅ 54.097ms (SLO: <56.000ms -3.4%) vs baseline: -0.2%

Memory: ✅ 35.154MB (SLO: <38.000MB -7.5%) vs baseline: +4.6%


✅ start-finish-telemetry

Time: ✅ 55.568ms (SLO: <58.000ms -4.2%) vs baseline: ~same

Memory: ✅ 35.252MB (SLO: <38.000MB -7.2%) vs baseline: +5.0%


✅ start-finish-traceid128

Time: ✅ 57.422ms (SLO: <60.000ms -4.3%) vs baseline: -0.1%

Memory: ✅ 35.193MB (SLO: <38.000MB -7.4%) vs baseline: +4.9%


✅ start-traceid128

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

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


✅ update-name

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

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

ℹ️ Scenarios Missing SLO Configuration (26 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
  • 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

@KowalskiThomas KowalskiThomas force-pushed the dd/profiling-fix-stack-chunk-recursion-guard branch 2 times, most recently from 12d4a6e to 2a536d4 Compare January 30, 2026 14:13
@KowalskiThomas KowalskiThomas added Profiling Continous Profling identified-by:fuzzing Bug / Regression identified by fuzzing labels Jan 30, 2026
@KowalskiThomas KowalskiThomas changed the title fix(profiling): Guard stack chunk recursion fix(profiling): guard stack chunk recursion Jan 30, 2026
@KowalskiThomas KowalskiThomas force-pushed the dd/profiling-fix-stack-chunk-recursion-guard branch from 2a536d4 to ec849be Compare January 30, 2026 16:29
@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Jan 30, 2026

⚠️ Tests

Fix all issues with Cursor

⚠️ Warnings

❄️ 1 New flaky test detected

test_internal_adaptive_sampling[py3.10] from test_internal_adaptive_sampling.py (Datadog) (Fix with Cursor)
Expected status 0, got 1.
=== Captured STDOUT ===
=== End of captured STDOUT ===
=== Captured STDERR ===
Traceback (most recent call last):
  File "tests/profiling/collector/test_internal_adaptive_sampling.py", line 66, in <module>
    assert internal_metadata["sample_count"] > 0
AssertionError
=== End of captured STDERR ===

ℹ️ Info

🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: ec849be | Docs | Datadog PR Page | Was this helpful? Give us feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Bits AI identified-by:fuzzing Bug / Regression identified by fuzzing Profiling Continous Profling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants