Skip to content

feat(profiling): add main/worker tags to profiles#17569

Draft
KowalskiThomas wants to merge 1 commit intomainfrom
kowalski/feat-profiling-add-main-worker-tags-to-profiles
Draft

feat(profiling): add main/worker tags to profiles#17569
KowalskiThomas wants to merge 1 commit intomainfrom
kowalski/feat-profiling-add-main-worker-tags-to-profiles

Conversation

@KowalskiThomas
Copy link
Copy Markdown
Contributor

What does this PR do?

This PR addresses a recent issue we have discussed in the Profiling Meetup where profiles from parent and worker processes are mixed in the flame graphs and there is no way to foolproof-ly set them apart.

By adding a process_type tag to the profiles, we work around this issue and let the user filter the data to what they are interested it more easily.

Note this should work for all fork-based frameworks/servers, but I think in other cases (like Ray's) we may have to find a different implementation as Ray doesn't "just" fork, it forks + replaces the process image. This is a first step though.

@KowalskiThomas KowalskiThomas added the Profiling Continous Profling label Apr 16, 2026
@KowalskiThomas KowalskiThomas force-pushed the kowalski/feat-profiling-add-main-worker-tags-to-profiles branch from f13304e to e96aa6e Compare April 16, 2026 12:30
@KowalskiThomas KowalskiThomas force-pushed the kowalski/feat-profiling-add-main-worker-tags-to-profiles branch from e96aa6e to 79a5341 Compare April 16, 2026 12:30
@cit-pr-commenter-54b7da
Copy link
Copy Markdown

Codeowners resolved as

ddtrace/internal/datadog/profiling/ddup/_ddup.pyi                       @DataDog/profiling-python
ddtrace/internal/datadog/profiling/ddup/_ddup.pyx                       @DataDog/profiling-python
ddtrace/internal/runtime/__init__.py                                    @DataDog/apm-sdk-capabilities-python
releasenotes/notes/profiling-add-process-type-tags-0b2c93a46ef92e7a.yaml  @DataDog/apm-python
tests/profiling/test_gunicorn.py                                        @DataDog/profiling-python
tests/profiling/test_process_role.py                                    @DataDog/profiling-python
tests/tracer/runtime/test_runtime_id.py                                 @DataDog/apm-sdk-capabilities-python @DataDog/apm-core-python

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Apr 16, 2026

Performance SLOs

Comparing candidate kowalski/feat-profiling-add-main-worker-tags-to-profiles (79a5341) with baseline main (a5ff574)

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

✅ appsec

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

Memory: ✅ 71.290MB (SLO: <73.500MB -3.0%) vs baseline: +4.8%


✅ exception-replay-enabled

Time: ✅ 1.365ms (SLO: <1.450ms -5.8%) vs baseline: -0.6%

Memory: ✅ 69.630MB (SLO: <71.500MB -2.6%) vs baseline: +5.0%


✅ iast

Time: ✅ 19.598ms (SLO: <22.250ms 📉 -11.9%) vs baseline: -0.3%

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


✅ profiler

Time: ✅ 15.112ms (SLO: <16.550ms -8.7%) vs baseline: -0.4%

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


✅ resource-renaming

Time: ✅ 19.519ms (SLO: <21.750ms 📉 -10.3%) vs baseline: -0.3%

Memory: ✅ 71.234MB (SLO: <73.500MB -3.1%) vs baseline: +4.8%


✅ span-code-origin

Time: ✅ 20.192ms (SLO: <28.200ms 📉 -28.4%) vs baseline: +1.5%

Memory: ✅ 71.547MB (SLO: <75.000MB -4.6%) vs baseline: +5.2%


✅ tracer

Time: ✅ 19.669ms (SLO: <21.750ms -9.6%) vs baseline: +0.2%

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


✅ tracer-and-profiler

Time: ✅ 20.926ms (SLO: <23.500ms 📉 -11.0%) vs baseline: -0.5%

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


✅ tracer-dont-create-db-spans

Time: ✅ 19.719ms (SLO: <21.500ms -8.3%) vs baseline: ~same

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


✅ tracer-minimal

Time: ✅ 17.902ms (SLO: <18.500ms -3.2%) vs baseline: +0.1%

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


✅ tracer-no-caches

Time: ✅ 18.851ms (SLO: <19.650ms -4.1%) vs baseline: ~same

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


✅ tracer-no-databases

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

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


✅ tracer-no-middleware

Time: ✅ 19.361ms (SLO: <21.500ms -9.9%) vs baseline: ~same

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


✅ tracer-no-templates

Time: ✅ 20.798ms (SLO: <22.000ms -5.5%) vs baseline: +0.9%

Memory: ✅ 71.295MB (SLO: <73.500MB -3.0%) vs baseline: +4.9%


🟡 otelspan - 22/22

✅ add-event

Time: ✅ 40.715ms (SLO: <47.150ms 📉 -13.6%) vs baseline: +0.3%

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


✅ add-metrics

Time: ✅ 235.086ms (SLO: <344.800ms 📉 -31.8%) vs baseline: ~same

Memory: ✅ 45.761MB (SLO: <47.500MB -3.7%) vs baseline: +5.3%


✅ add-tags

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

Memory: ✅ 45.679MB (SLO: <47.500MB -3.8%) vs baseline: +5.0%


✅ get-context

Time: ✅ 83.737ms (SLO: <92.350ms -9.3%) vs baseline: -0.3%

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


✅ is-recording

Time: ✅ 38.863ms (SLO: <44.500ms 📉 -12.7%) vs baseline: -0.3%

Memory: ✅ 41.162MB (SLO: <47.500MB 📉 -13.3%) vs baseline: +5.1%


✅ record-exception

Time: ✅ 61.224ms (SLO: <67.650ms -9.5%) vs baseline: +0.3%

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


✅ set-status

Time: ✅ 44.891ms (SLO: <50.400ms 📉 -10.9%) vs baseline: +0.2%

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


✅ start

Time: ✅ 40.214ms (SLO: <44.500ms -9.6%) vs baseline: +3.3%

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


✅ start-finish

Time: ✅ 89.717ms (SLO: <92.000ms -2.5%) vs baseline: -0.2%

Memory: ✅ 38.732MB (SLO: <46.500MB 📉 -16.7%) vs baseline: +4.9%


✅ start-finish-telemetry

Time: ✅ 91.501ms (SLO: <93.000ms 🟡 -1.6%) vs baseline: -0.4%

Memory: ✅ 38.692MB (SLO: <46.500MB 📉 -16.8%) vs baseline: +4.4%


✅ update-name

Time: ✅ 40.332ms (SLO: <45.150ms 📉 -10.7%) vs baseline: +0.8%

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


🟡 recursivecomputation - 8/8

✅ deep

Time: ✅ 312.103ms (SLO: <320.950ms -2.8%) vs baseline: +0.1%

Memory: ✅ 37.316MB (SLO: <38.750MB -3.7%) vs baseline: +4.6%


✅ deep-profiled

Time: ✅ 327.731ms (SLO: <359.150ms -8.7%) vs baseline: -0.3%

Memory: ✅ 43.765MB (SLO: <46.000MB -4.9%) vs baseline: +5.0%


✅ medium

Time: ✅ 7.334ms (SLO: <7.450ms 🟡 -1.6%) vs baseline: -0.2%

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


✅ shallow

Time: ✅ 1.038ms (SLO: <1.050ms 🟡 -1.2%) vs baseline: +2.1%

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


🟡 span - 26/26

✅ add-event

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

Memory: ✅ 38.451MB (SLO: <53.000MB 📉 -27.5%) vs baseline: +5.2%


✅ add-metrics

Time: ✅ 89.058ms (SLO: <93.500ms -4.8%) vs baseline: +0.3%

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


✅ add-tags

Time: ✅ 137.539ms (SLO: <155.000ms 📉 -11.3%) vs baseline: +1.0%

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


✅ get-context

Time: ✅ 18.681ms (SLO: <20.500ms -8.9%) vs baseline: +0.2%

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


✅ is-recording

Time: ✅ 18.874ms (SLO: <20.500ms -7.9%) vs baseline: -0.2%

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


✅ record-exception

Time: ✅ 38.344ms (SLO: <41.000ms -6.5%) vs baseline: -0.1%

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


✅ set-status

Time: ✅ 20.486ms (SLO: <22.000ms -6.9%) vs baseline: ~same

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


✅ start

Time: ✅ 19.756ms (SLO: <20.500ms -3.6%) vs baseline: +6.0%

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


✅ start-finish

Time: ✅ 58.272ms (SLO: <58.500ms 🟡 -0.4%) vs baseline: +0.5%

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


✅ start-finish-telemetry

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

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


✅ start-finish-traceid128

Time: ✅ 60.371ms (SLO: <62.000ms -2.6%) vs baseline: -0.2%

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


✅ start-traceid128

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

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


✅ update-name

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

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


🟡 tracer - 6/6

✅ large

Time: ✅ 33.025ms (SLO: <33.950ms -2.7%) vs baseline: -0.2%

Memory: ✅ 37.847MB (SLO: <39.250MB -3.6%) vs baseline: +4.8%


✅ medium

Time: ✅ 3.326ms (SLO: <3.500ms -5.0%) vs baseline: +0.2%

Memory: ✅ 36.235MB (SLO: <38.750MB -6.5%) vs baseline: +4.6%


✅ small

Time: ✅ 386.088µs (SLO: <390.000µs 🟡 -1.0%) vs baseline: +3.7%

Memory: ✅ 36.274MB (SLO: <38.750MB -6.4%) vs baseline: +4.9%

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

⚠️ context_with_data_listeners

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

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


✅ context_with_data_no_listeners

Time: ✅ 3.642µs (SLO: <10.000µs 📉 -63.6%) vs baseline: +1.1%

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +4.9%


✅ get_item_exists

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

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


✅ get_item_missing

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

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


✅ set_item

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

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

✅ All Tests Passing (12 suites)
errortrackingdjangosimple - 6/6

✅ errortracking-enabled-all

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

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


✅ errortracking-enabled-user

Time: ✅ 17.506ms (SLO: <19.400ms -9.8%) vs baseline: ~same

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


✅ tracer-enabled

Time: ✅ 17.553ms (SLO: <19.450ms -9.8%) vs baseline: +0.4%

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


errortrackingflasksqli - 6/6

✅ errortracking-enabled-all

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

Memory: ✅ 58.255MB (SLO: <60.000MB -2.9%) vs baseline: +4.8%


✅ errortracking-enabled-user

Time: ✅ 2.122ms (SLO: <2.250ms -5.7%) vs baseline: +0.1%

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


✅ tracer-enabled

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

Memory: ✅ 58.294MB (SLO: <60.000MB -2.8%) vs baseline: +4.6%


flasksimple - 16/16

✅ appsec-get

Time: ✅ 3.413ms (SLO: <4.750ms 📉 -28.1%) vs baseline: ~same

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


✅ appsec-post

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

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


✅ appsec-telemetry

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

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


✅ debugger

Time: ✅ 1.879ms (SLO: <2.000ms -6.1%) vs baseline: ~same

Memory: ✅ 49.437MB (SLO: <51.500MB -4.0%) vs baseline: +5.0%


✅ iast-get

Time: ✅ 1.865ms (SLO: <2.000ms -6.8%) vs baseline: ~same

Memory: ✅ 46.134MB (SLO: <49.000MB -5.8%) vs baseline: +5.0%


✅ profiler

Time: ✅ 1.917ms (SLO: <2.100ms -8.7%) vs baseline: +0.2%

Memory: ✅ 52.013MB (SLO: <53.500MB -2.8%) vs baseline: +4.7%


✅ resource-renaming

Time: ✅ 3.393ms (SLO: <3.650ms -7.0%) vs baseline: +0.1%

Memory: ✅ 58.520MB (SLO: <60.000MB -2.5%) vs baseline: +4.8%


✅ tracer

Time: ✅ 3.393ms (SLO: <3.650ms -7.0%) vs baseline: +0.1%

Memory: ✅ 58.521MB (SLO: <60.000MB -2.5%) vs baseline: +4.7%


flasksqli - 6/6

✅ appsec-enabled

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

Memory: ✅ 58.373MB (SLO: <66.000MB 📉 -11.6%) vs baseline: +4.5%


✅ iast-enabled

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

Memory: ✅ 58.570MB (SLO: <62.500MB -6.3%) vs baseline: +5.1%


✅ tracer-enabled

Time: ✅ 2.107ms (SLO: <2.250ms -6.4%) vs baseline: ~same

Memory: ✅ 58.511MB (SLO: <60.000MB -2.5%) vs baseline: +4.9%


forktime - 4/4

✅ baseline

Time: ✅ 1.947ms (SLO: <3.000ms 📉 -35.1%) vs baseline: +3.7%

Memory: ✅ 29.295MB (SLO: <33.000MB 📉 -11.2%) vs baseline: +4.8%


✅ configured

Time: ✅ 9.381ms (SLO: <13.000ms 📉 -27.8%) vs baseline: +0.1%

Memory: ✅ 58.110MB (SLO: <60.000MB -3.2%) vs baseline: +4.8%


httppropagationextract - 59/59

✅ all_styles_all_headers

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

Memory: ✅ 36.392MB (SLO: <38.000MB -4.2%) vs baseline: +4.3%


✅ b3_headers

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

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


✅ b3_single_headers

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

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


✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match

Time: ✅ 60.516µs (SLO: <80.000µs 📉 -24.4%) vs baseline: -0.2%

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


✅ datadog_tracecontext_tracestate_propagated_on_trace_id_match

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

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


✅ empty_headers

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

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


✅ full_t_id_datadog_headers

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

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


✅ invalid_priority_header

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

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +4.7%


✅ invalid_span_id_header

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

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


✅ invalid_tags_header

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

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +4.9%


✅ invalid_trace_id_header

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

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


✅ large_header_no_matches

Time: ✅ 27.028µs (SLO: <30.000µs -9.9%) vs baseline: +0.4%

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


✅ large_valid_headers_all

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

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


✅ medium_header_no_matches

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


✅ medium_valid_headers_all

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

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


✅ none_propagation_style

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

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


✅ tracecontext_headers

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

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


✅ valid_headers_all

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

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +4.8%


✅ valid_headers_basic

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

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


✅ wsgi_empty_headers

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

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


✅ wsgi_invalid_priority_header

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

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


✅ wsgi_invalid_span_id_header

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

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


✅ wsgi_invalid_tags_header

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

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


✅ wsgi_invalid_trace_id_header

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

Memory: ✅ 36.412MB (SLO: <38.000MB -4.2%) vs baseline: +5.0%


✅ wsgi_large_header_no_matches

Time: ✅ 28.215µs (SLO: <40.000µs 📉 -29.5%) vs baseline: +0.2%

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


✅ wsgi_large_valid_headers_all

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

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


✅ wsgi_medium_header_no_matches

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

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


✅ wsgi_medium_valid_headers_all

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

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +5.0%


✅ wsgi_valid_headers_all

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

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


✅ wsgi_valid_headers_basic

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

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


httppropagationinject - 16/16

✅ ids_only

Time: ✅ 20.880µs (SLO: <30.000µs 📉 -30.4%) vs baseline: +4.1%

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


✅ with_all

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

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


✅ with_dd_origin

Time: ✅ 23.826µs (SLO: <30.000µs 📉 -20.6%) vs baseline: +0.2%

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


✅ with_priority_and_origin

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

Memory: ✅ 36.392MB (SLO: <38.000MB -4.2%) vs baseline: +5.2%


✅ with_sampling_priority

Time: ✅ 20.113µs (SLO: <30.000µs 📉 -33.0%) vs baseline: -0.1%

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


✅ with_tags

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

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


✅ with_tags_invalid

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

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


✅ with_tags_max_size

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

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +4.7%


otelsdkspan - 24/24

✅ add-event

Time: ✅ 40.267ms (SLO: <42.000ms -4.1%) vs baseline: -0.7%

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


✅ add-link

Time: ✅ 36.292ms (SLO: <38.550ms -5.9%) vs baseline: -0.7%

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


✅ add-metrics

Time: ✅ 218.412ms (SLO: <232.000ms -5.9%) vs baseline: ~same

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


✅ add-tags

Time: ✅ 211.567ms (SLO: <221.600ms -4.5%) vs baseline: -0.1%

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


✅ get-context

Time: ✅ 28.927ms (SLO: <31.300ms -7.6%) vs baseline: -0.8%

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


✅ is-recording

Time: ✅ 28.956ms (SLO: <31.000ms -6.6%) vs baseline: -0.5%

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


✅ record-exception

Time: ✅ 63.247ms (SLO: <65.850ms -4.0%) vs baseline: ~same

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


✅ set-status

Time: ✅ 31.528ms (SLO: <34.150ms -7.7%) vs baseline: -1.5%

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


✅ start

Time: ✅ 29.267ms (SLO: <30.150ms -2.9%) vs baseline: +2.2%

Memory: ✅ 39.105MB (SLO: <40.750MB -4.0%) vs baseline: +5.3%


✅ start-finish

Time: ✅ 33.851ms (SLO: <35.350ms -4.2%) vs baseline: ~same

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


✅ start-finish-telemetry

Time: ✅ 33.972ms (SLO: <35.450ms -4.2%) vs baseline: +0.3%

Memory: ✅ 39.007MB (SLO: <40.750MB -4.3%) vs baseline: +4.8%


✅ update-name

Time: ✅ 30.901ms (SLO: <33.400ms -7.5%) vs baseline: +0.9%

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


ratelimiter - 11/11

✅ defaults

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

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


✅ high_rate_limit

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

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


✅ long_window

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

Memory: ✅ 36.549MB (SLO: <38.000MB -3.8%)


✅ low_rate_limit

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


✅ no_rate_limit

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

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


✅ short_window

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

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


samplingrules - 8/8

✅ average_match

Time: ✅ 169.536µs (SLO: <300.000µs 📉 -43.5%) vs baseline: -0.4%

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


✅ high_match

Time: ✅ 216.852µs (SLO: <480.000µs 📉 -54.8%) vs baseline: +1.0%

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


✅ low_match

Time: ✅ 119.753µs (SLO: <130.000µs -7.9%) vs baseline: +0.1%

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


✅ very_low_match

Time: ✅ 3.143ms (SLO: <9.000ms 📉 -65.1%) vs baseline: +0.8%

Memory: ✅ 78.771MB (SLO: <85.000MB -7.3%) vs baseline: +4.8%


sethttpmeta - 32/32

✅ all-disabled

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

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


✅ all-enabled

Time: ✅ 39.862µs (SLO: <50.000µs 📉 -20.3%) vs baseline: +1.9%

Memory: ✅ 37.139MB (SLO: <38.750MB -4.2%) vs baseline: +4.8%


✅ collectipvariant_exists

Time: ✅ 39.745µs (SLO: <50.000µs 📉 -20.5%) vs baseline: -0.4%

Memory: ✅ 37.218MB (SLO: <38.750MB -4.0%) vs baseline: +5.0%


✅ no-collectipvariant

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

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


✅ no-useragentvariant

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

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


✅ obfuscation-no-query

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

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


✅ obfuscation-regular-case-explicit-query

Time: ✅ 76.024µs (SLO: <90.000µs 📉 -15.5%) vs baseline: -0.3%

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


✅ obfuscation-regular-case-implicit-query

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

Memory: ✅ 37.532MB (SLO: <38.750MB -3.1%) vs baseline: +4.9%


✅ obfuscation-send-querystring-disabled

Time: ✅ 154.844µs (SLO: <170.000µs -8.9%) vs baseline: -0.1%

Memory: ✅ 37.532MB (SLO: <38.750MB -3.1%) vs baseline: +5.0%


✅ obfuscation-worst-case-explicit-query

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

Memory: ✅ 37.434MB (SLO: <38.750MB -3.4%) vs baseline: +4.5%


✅ obfuscation-worst-case-implicit-query

Time: ✅ 155.262µs (SLO: <170.000µs -8.7%) vs baseline: -0.2%

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


✅ useragentvariant_exists_1

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

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


✅ useragentvariant_exists_2

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

Memory: ✅ 37.159MB (SLO: <38.750MB -4.1%) vs baseline: +4.7%


✅ useragentvariant_exists_3

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

Memory: ✅ 37.120MB (SLO: <38.750MB -4.2%) vs baseline: +4.8%


✅ useragentvariant_not_exists_1

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

Memory: ✅ 37.159MB (SLO: <38.750MB -4.1%) vs baseline: +4.7%


✅ useragentvariant_not_exists_2

Time: ✅ 38.464µs (SLO: <50.000µs 📉 -23.1%) vs baseline: -0.6%

Memory: ✅ 37.159MB (SLO: <38.750MB -4.1%) vs baseline: +4.8%


telemetryaddmetric - 30/30

✅ 1-count-metric-1-times

Time: ✅ 2.332µs (SLO: <20.000µs 📉 -88.3%) vs baseline: +9.0%

Memory: ✅ 36.667MB (SLO: <38.000MB -3.5%) vs baseline: +5.0%


✅ 1-count-metrics-100-times

Time: ✅ 154.556µs (SLO: <220.000µs 📉 -29.7%) vs baseline: +0.3%

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


✅ 1-distribution-metric-1-times

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

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


✅ 1-distribution-metrics-100-times

Time: ✅ 164.463µs (SLO: <230.000µs 📉 -28.5%) vs baseline: -0.5%

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


✅ 1-gauge-metric-1-times

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

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


✅ 1-gauge-metrics-100-times

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

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


✅ 1-rate-metric-1-times

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

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


✅ 1-rate-metrics-100-times

Time: ✅ 169.795µs (SLO: <250.000µs 📉 -32.1%) vs baseline: +1.1%

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


✅ 100-count-metrics-100-times

Time: ✅ 15.475ms (SLO: <22.000ms 📉 -29.7%) vs baseline: -0.7%

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


✅ 100-distribution-metrics-100-times

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

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


✅ 100-gauge-metrics-100-times

Time: ✅ 1.408ms (SLO: <1.550ms -9.1%) vs baseline: +0.7%

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


✅ 100-rate-metrics-100-times

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

Memory: ✅ 36.294MB (SLO: <38.000MB -4.5%) vs baseline: +5.0%


✅ flush-1-metric

Time: ✅ 3.593µs (SLO: <20.000µs 📉 -82.0%) vs baseline: -1.1%

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


✅ flush-100-metrics

Time: ✅ 175.341µs (SLO: <250.000µs 📉 -29.9%) vs baseline: +0.2%

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


✅ flush-1000-metrics

Time: ✅ 2.191ms (SLO: <2.500ms 📉 -12.3%) vs baseline: -0.5%

Memory: ✅ 37.415MB (SLO: <38.750MB -3.4%) vs baseline: +4.6%

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

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

Labels

Profiling Continous Profling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant