feat(mcp): trace mcp server initializations
Motivation
https://datadoghq.atlassian.net/browse/MLOB-4380
Description
Adds traces for MCP server initialize requests and responses. They are recorded as mcp.initialize with the full content of the request and response, just like we do in Go.
Testing
Added tests. Also tested integrated into a demo server.
Risks
- Existing integrations will begin getting a new trace type they may not expect.
- Difficulty to change once released to the public
Additional Notes
- I would like to record the
mcp_session_idon these spans like we do in Go. However, I could not figure out how to get themcp_session_idfrom any place where I could also record the trace content. I eventually gave up. I am only able to record themcp_session_idwhen it is on the requestβwhich is only true for subsequent requests after initialization. - Span naming. In Go, the spans are named for the name of the tool or
mcp.initialize(genericallymcp.{method}). But in Python I see the spans are named with more verbose English descriptions (e.g. "MCP Server Tool Execute: {name of tool}"). If this should conform to the existing Python pattern let me know. Otherwise I will eventually update the tools to follow the Go pattern. - Span content. In Go, the tool spans record the full input and output as defined by the protocol, with "method" and "params" as top level parameters. But in Python, only the tool arguments are recorded. Here I'm following the Go pattern, but if this is too much data let me know. We could go back and change Go if necessary. I prefer the Go pattern because using the high level protocol format makes all types of requests consistent. Otherwise I would also like to change Python tool calls to match the Go pattern in the future.
-
#15849
-
#15693
-
#15648
-
#15612
π (View in Graphite)
-
main
This stack of pull requests is managed by Graphite. Learn more about stacking.
CODEOWNERS have been resolved as:
releasenotes/notes/Add-tracing-of-initialization-requests-and-responses-on-MCP-servers-51d32286dcd52a7d.yaml @DataDog/apm-python
ddtrace/contrib/internal/mcp/patch.py @DataDog/ml-observability
ddtrace/llmobs/_integrations/mcp.py @DataDog/ml-observability
tests/contrib/mcp/conftest.py @DataDog/ml-observability
tests/contrib/mcp/test_mcp_llmobs.py @DataDog/ml-observability
tests/contrib/mcp/test_mcp_patch.py @DataDog/ml-observability
Bootstrap import analysis
Comparison of import times between this PR and base.
Summary
The average import time from this PR is: 248 Β± 3 ms.
The average import time from base is: 249 Β± 2 ms.
The import time difference between this PR and base is: -0.9 Β± 0.1 ms.
Import time breakdown
The following import paths have shrunk:
ddtrace.auto
2.519 ms
(1.02%)
ddtrace
1.324 ms
(0.53%)
ddtrace._logger
0.650 ms
(0.26%)
ddtrace.internal.telemetry
0.650 ms
(0.26%)
ddtrace.internal.telemetry.writer
0.650 ms
(0.26%)
ddtrace.internal.utils.version
0.650 ms
(0.26%)
ddtrace.version
0.650 ms
(0.26%)
ddtrace.internal._unpatched
0.028 ms
(0.01%)
json
0.028 ms
(0.01%)
json.decoder
0.028 ms
(0.01%)
re
0.028 ms
(0.01%)
enum
0.028 ms
(0.01%)
types
0.028 ms
(0.01%)
ddtrace.bootstrap.sitecustomize
1.196 ms
(0.48%)
ddtrace.bootstrap.preload
1.196 ms
(0.48%)
ddtrace.internal.remoteconfig.client
0.608 ms
(0.25%)
Performance SLOs
Comparing candidate jb/trace-mcp-server-initializations (17c1b21a) with baseline main (ad2137d4)
π Performance Regressions (3 suites)
π iastaspects - 118/118
β add_aspect
Time: β 18.097Β΅s (SLO: <20.000Β΅s -9.5%) vs baseline: π +20.3%
Memory: β 42.625MB (SLO: <43.250MB π‘ -1.4%) vs baseline: +5.1%
β add_inplace_aspect
Time: β 15.055Β΅s (SLO: <20.000Β΅s π -24.7%) vs baseline: +0.6%
Memory: β 42.605MB (SLO: <43.250MB π‘ -1.5%) vs baseline: +4.9%
β add_inplace_noaspect
Time: β 0.340Β΅s (SLO: <10.000Β΅s π -96.6%) vs baseline: +0.2%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9%
β add_noaspect
Time: β 0.546Β΅s (SLO: <10.000Β΅s π -94.5%) vs baseline: ~same
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.9%
β bytearray_aspect
Time: β 18.043Β΅s (SLO: <30.000Β΅s π -39.9%) vs baseline: +0.7%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0%
β bytearray_extend_aspect
Time: β 24.077Β΅s (SLO: <30.000Β΅s π -19.7%) vs baseline: +0.8%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β bytearray_extend_noaspect
Time: β 2.744Β΅s (SLO: <10.000Β΅s π -72.6%) vs baseline: -0.5%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.8%
β bytearray_noaspect
Time: β 1.459Β΅s (SLO: <10.000Β΅s π -85.4%) vs baseline: -0.9%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +5.0%
β bytes_aspect
Time: β 16.820Β΅s (SLO: <20.000Β΅s π -15.9%) vs baseline: +1.0%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +5.0%
β bytes_noaspect
Time: β 1.416Β΅s (SLO: <10.000Β΅s π -85.8%) vs baseline: -0.4%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.8%
β bytesio_aspect
Time: β 55.898Β΅s (SLO: <70.000Β΅s π -20.1%) vs baseline: +0.3%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β bytesio_noaspect
Time: β 3.263Β΅s (SLO: <10.000Β΅s π -67.4%) vs baseline: -0.8%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β capitalize_aspect
Time: β 14.777Β΅s (SLO: <20.000Β΅s π -26.1%) vs baseline: +0.6%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +5.1%
β capitalize_noaspect
Time: β 2.585Β΅s (SLO: <10.000Β΅s π -74.1%) vs baseline: -0.5%
Memory: β 42.664MB (SLO: <43.500MB π‘ -1.9%) vs baseline: +5.2%
β casefold_aspect
Time: β 14.714Β΅s (SLO: <20.000Β΅s π -26.4%) vs baseline: -0.1%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β casefold_noaspect
Time: β 3.152Β΅s (SLO: <10.000Β΅s π -68.5%) vs baseline: -0.3%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β decode_aspect
Time: β 15.726Β΅s (SLO: <30.000Β΅s π -47.6%) vs baseline: +0.6%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β decode_noaspect
Time: β 1.588Β΅s (SLO: <10.000Β΅s π -84.1%) vs baseline: -1.0%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β encode_aspect
Time: β 18.266Β΅s (SLO: <30.000Β΅s π -39.1%) vs baseline: π +22.9%
Memory: β 42.664MB (SLO: <43.500MB π‘ -1.9%) vs baseline: +5.1%
β encode_noaspect
Time: β 1.499Β΅s (SLO: <10.000Β΅s π -85.0%) vs baseline: -1.0%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β format_aspect
Time: β 171.239Β΅s (SLO: <200.000Β΅s π -14.4%) vs baseline: -0.4%
Memory: β 42.743MB (SLO: <43.250MB π‘ -1.2%) vs baseline: +5.0%
β format_map_aspect
Time: β 191.523Β΅s (SLO: <200.000Β΅s -4.2%) vs baseline: +0.3%
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.7%
β format_map_noaspect
Time: β 3.822Β΅s (SLO: <10.000Β΅s π -61.8%) vs baseline: +0.6%
Memory: β 42.566MB (SLO: <43.250MB π‘ -1.6%) vs baseline: +4.8%
β format_noaspect
Time: β 3.150Β΅s (SLO: <10.000Β΅s π -68.5%) vs baseline: +0.4%
Memory: β 42.507MB (SLO: <43.250MB π‘ -1.7%) vs baseline: +4.8%
β index_aspect
Time: β 15.497Β΅s (SLO: <20.000Β΅s π -22.5%) vs baseline: +0.8%
Memory: β 42.644MB (SLO: <43.250MB π‘ -1.4%) vs baseline: +5.1%
β index_noaspect
Time: β 0.467Β΅s (SLO: <10.000Β΅s π -95.3%) vs baseline: +0.2%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β join_aspect
Time: β 17.058Β΅s (SLO: <20.000Β΅s π -14.7%) vs baseline: -0.5%
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.9%
β join_noaspect
Time: β 1.545Β΅s (SLO: <10.000Β΅s π -84.6%) vs baseline: ~same
Memory: β 42.526MB (SLO: <43.250MB π‘ -1.7%) vs baseline: +4.9%
β ljust_aspect
Time: β 20.911Β΅s (SLO: <30.000Β΅s π -30.3%) vs baseline: +0.3%
Memory: β 42.605MB (SLO: <43.250MB π‘ -1.5%) vs baseline: +4.6%
β ljust_noaspect
Time: β 2.697Β΅s (SLO: <10.000Β΅s π -73.0%) vs baseline: +0.5%
Memory: β 42.644MB (SLO: <43.250MB π‘ -1.4%) vs baseline: +5.0%
β lower_aspect
Time: β 18.046Β΅s (SLO: <30.000Β΅s π -39.8%) vs baseline: ~same
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +5.0%
β lower_noaspect
Time: β 2.425Β΅s (SLO: <10.000Β΅s π -75.7%) vs baseline: -0.6%
Memory: β 42.664MB (SLO: <43.250MB π‘ -1.4%) vs baseline: +5.1%
β lstrip_aspect
Time: β 17.876Β΅s (SLO: <30.000Β΅s π -40.4%) vs baseline: +1.2%
Memory: β 42.605MB (SLO: <43.250MB π‘ -1.5%) vs baseline: +4.9%
β lstrip_noaspect
Time: β 1.862Β΅s (SLO: <10.000Β΅s π -81.4%) vs baseline: -0.3%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0%
β modulo_aspect
Time: β 166.351Β΅s (SLO: <200.000Β΅s π -16.8%) vs baseline: ~same
Memory: β 42.802MB (SLO: <43.500MB π‘ -1.6%) vs baseline: +5.1%
β modulo_aspect_for_bytearray_bytearray
Time: β 174.459Β΅s (SLO: <200.000Β΅s π -12.8%) vs baseline: ~same
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.4%
β modulo_aspect_for_bytes
Time: β 168.812Β΅s (SLO: <200.000Β΅s π -15.6%) vs baseline: ~same
Memory: β 42.762MB (SLO: <43.500MB π‘ -1.7%) vs baseline: +4.9%
β modulo_aspect_for_bytes_bytearray
Time: β 171.680Β΅s (SLO: <200.000Β΅s π -14.2%) vs baseline: -0.1%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.7%
β modulo_noaspect
Time: β 3.759Β΅s (SLO: <10.000Β΅s π -62.4%) vs baseline: +1.6%
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.8%
β replace_aspect
Time: β 212.356Β΅s (SLO: <300.000Β΅s π -29.2%) vs baseline: +0.2%
Memory: β 42.605MB (SLO: <44.000MB -3.2%) vs baseline: +4.8%
β replace_noaspect
Time: β 2.902Β΅s (SLO: <10.000Β΅s π -71.0%) vs baseline: -0.2%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β repr_aspect
Time: β 1.417Β΅s (SLO: <10.000Β΅s π -85.8%) vs baseline: -0.3%
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.8%
β repr_noaspect
Time: β 0.520Β΅s (SLO: <10.000Β΅s π -94.8%) vs baseline: -1.9%
Memory: β 42.703MB (SLO: <43.500MB π‘ -1.8%) vs baseline: +5.1%
β rstrip_aspect
Time: β 19.154Β΅s (SLO: <30.000Β΅s π -36.2%) vs baseline: +0.5%
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.7%
β rstrip_noaspect
Time: β 2.048Β΅s (SLO: <10.000Β΅s π -79.5%) vs baseline: +5.6%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β slice_aspect
Time: β 15.960Β΅s (SLO: <20.000Β΅s π -20.2%) vs baseline: +0.1%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +4.9%
β slice_noaspect
Time: β 0.597Β΅s (SLO: <10.000Β΅s π -94.0%) vs baseline: -0.1%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β stringio_aspect
Time: β 54.332Β΅s (SLO: <80.000Β΅s π -32.1%) vs baseline: -0.2%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9%
β stringio_noaspect
Time: β 3.618Β΅s (SLO: <10.000Β΅s π -63.8%) vs baseline: -1.0%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β strip_aspect
Time: β 17.796Β΅s (SLO: <20.000Β΅s π -11.0%) vs baseline: +0.4%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β strip_noaspect
Time: β 1.876Β΅s (SLO: <10.000Β΅s π -81.2%) vs baseline: +0.9%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β swapcase_aspect
Time: β 18.547Β΅s (SLO: <30.000Β΅s π -38.2%) vs baseline: +0.4%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +5.0%
β swapcase_noaspect
Time: β 2.806Β΅s (SLO: <10.000Β΅s π -71.9%) vs baseline: ~same
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +5.1%
β title_aspect
Time: β 22.153Β΅s (SLO: <30.000Β΅s π -26.2%) vs baseline: π +21.1%
Memory: β 42.566MB (SLO: <43.000MB π‘ -1.0%) vs baseline: +4.7%
β title_noaspect
Time: β 2.665Β΅s (SLO: <10.000Β΅s π -73.4%) vs baseline: -1.1%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.6%
β translate_aspect
Time: β 20.628Β΅s (SLO: <30.000Β΅s π -31.2%) vs baseline: +0.6%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +5.0%
β translate_noaspect
Time: β 4.340Β΅s (SLO: <10.000Β΅s π -56.6%) vs baseline: +0.5%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β upper_aspect
Time: β 18.071Β΅s (SLO: <30.000Β΅s π -39.8%) vs baseline: +0.4%
Memory: β 42.546MB (SLO: <43.500MB -2.2%) vs baseline: +4.8%
β upper_noaspect
Time: β 2.442Β΅s (SLO: <10.000Β΅s π -75.6%) vs baseline: -1.2%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
π iastaspectsospath - 24/24
β ospathbasename_aspect
Time: β 5.191Β΅s (SLO: <10.000Β΅s π -48.1%) vs baseline: π +21.7%
Memory: β 42.684MB (SLO: <43.500MB π‘ -1.9%) vs baseline: +5.1%
β ospathbasename_noaspect
Time: β 4.255Β΅s (SLO: <10.000Β΅s π -57.5%) vs baseline: -1.8%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β ospathjoin_aspect
Time: β 6.279Β΅s (SLO: <10.000Β΅s π -37.2%) vs baseline: ~same
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β ospathjoin_noaspect
Time: β 6.305Β΅s (SLO: <10.000Β΅s π -37.0%) vs baseline: ~same
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β ospathnormcase_aspect
Time: β 3.563Β΅s (SLO: <10.000Β΅s π -64.4%) vs baseline: -0.4%
Memory: β 42.684MB (SLO: <43.500MB π‘ -1.9%) vs baseline: +5.2%
β ospathnormcase_noaspect
Time: β 3.608Β΅s (SLO: <10.000Β΅s π -63.9%) vs baseline: -0.8%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β ospathsplit_aspect
Time: β 4.878Β΅s (SLO: <10.000Β΅s π -51.2%) vs baseline: -0.2%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +5.1%
β ospathsplit_noaspect
Time: β 4.972Β΅s (SLO: <10.000Β΅s π -50.3%) vs baseline: -1.1%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β ospathsplitdrive_aspect
Time: β 3.753Β΅s (SLO: <10.000Β΅s π -62.5%) vs baseline: ~same
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β ospathsplitdrive_noaspect
Time: β 0.745Β΅s (SLO: <10.000Β΅s π -92.5%) vs baseline: -0.2%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9%
β ospathsplitext_aspect
Time: β 4.640Β΅s (SLO: <10.000Β΅s π -53.6%) vs baseline: +0.4%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0%
β ospathsplitext_noaspect
Time: β 4.621Β΅s (SLO: <10.000Β΅s π -53.8%) vs baseline: -0.5%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
π telemetryaddmetric - 30/30
β 1-count-metric-1-times
Time: β 3.377Β΅s (SLO: <20.000Β΅s π -83.1%) vs baseline: π +14.1%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.8%
β 1-count-metrics-100-times
Time: β 200.808Β΅s (SLO: <220.000Β΅s -8.7%) vs baseline: +1.4%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +5.2%
β 1-distribution-metric-1-times
Time: β 3.288Β΅s (SLO: <20.000Β΅s π -83.6%) vs baseline: -0.2%
Memory: β 34.859MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.7%
β 1-distribution-metrics-100-times
Time: β 213.724Β΅s (SLO: <230.000Β΅s -7.1%) vs baseline: +0.2%
Memory: β 34.859MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.9%
β 1-gauge-metric-1-times
Time: β 2.150Β΅s (SLO: <20.000Β΅s π -89.3%) vs baseline: -2.0%
Memory: β 34.878MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.6%
β 1-gauge-metrics-100-times
Time: β 136.140Β΅s (SLO: <150.000Β΅s -9.2%) vs baseline: -0.8%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +5.1%
β 1-rate-metric-1-times
Time: β 3.111Β΅s (SLO: <20.000Β΅s π -84.4%) vs baseline: ~same
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +5.0%
β 1-rate-metrics-100-times
Time: β 214.827Β΅s (SLO: <250.000Β΅s π -14.1%) vs baseline: +1.5%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +5.0%
β 100-count-metrics-100-times
Time: β 20.017ms (SLO: <22.000ms -9.0%) vs baseline: ~same
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.8%
β 100-distribution-metrics-100-times
Time: β 2.221ms (SLO: <2.550ms π -12.9%) vs baseline: +0.8%
Memory: β 35.016MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +5.4%
β 100-gauge-metrics-100-times
Time: β 1.416ms (SLO: <1.550ms -8.7%) vs baseline: +1.0%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.9%
β 100-rate-metrics-100-times
Time: β 2.178ms (SLO: <2.550ms π -14.6%) vs baseline: ~same
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.9%
β flush-1-metric
Time: β 4.537Β΅s (SLO: <20.000Β΅s π -77.3%) vs baseline: -0.4%
Memory: β 35.232MB (SLO: <35.500MB π‘ -0.8%) vs baseline: +4.4%
β flush-100-metrics
Time: β 173.072Β΅s (SLO: <250.000Β΅s π -30.8%) vs baseline: -0.2%
Memory: β 35.232MB (SLO: <35.500MB π‘ -0.8%) vs baseline: +4.6%
β flush-1000-metrics
Time: β 2.181ms (SLO: <2.500ms π -12.8%) vs baseline: +0.5%
Memory: β 36.058MB (SLO: <36.500MB π‘ -1.2%) vs baseline: +5.2%
π‘ Near SLO Breach (17 suites)
π‘ coreapiscenario - 10/10 (1 unstable)
β οΈ context_with_data_listeners
Time: β οΈ 13.270Β΅s (SLO: <20.000Β΅s π -33.7%) vs baseline: -0.1%
Memory: β 34.819MB (SLO: <35.500MB π‘ -1.9%) vs baseline: +4.4%
β context_with_data_no_listeners
Time: β 3.288Β΅s (SLO: <10.000Β΅s π -67.1%) vs baseline: +1.0%
Memory: β 34.800MB (SLO: <35.500MB π‘ -2.0%) vs baseline: +4.9%
β get_item_exists
Time: β 0.580Β΅s (SLO: <10.000Β΅s π -94.2%) vs baseline: ~same
Memory: β 34.859MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.6%
β get_item_missing
Time: β 0.635Β΅s (SLO: <10.000Β΅s π -93.6%) vs baseline: -0.2%
Memory: β 34.800MB (SLO: <35.500MB π‘ -2.0%) vs baseline: +4.7%
β set_item
Time: β 24.168Β΅s (SLO: <30.000Β΅s π -19.4%) vs baseline: +0.9%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +5.1%
π‘ djangosimple - 30/30
β appsec
Time: β 19.652ms (SLO: <22.300ms π -11.9%) vs baseline: +0.4%
Memory: β 68.282MB (SLO: <70.500MB -3.1%) vs baseline: +4.7%
β exception-replay-enabled
Time: β 1.364ms (SLO: <1.450ms -5.9%) vs baseline: ~same
Memory: β 66.458MB (SLO: <67.500MB π‘ -1.5%) vs baseline: +4.9%
β iast
Time: β 19.607ms (SLO: <22.250ms π -11.9%) vs baseline: -0.2%
Memory: β 68.361MB (SLO: <70.000MB -2.3%) vs baseline: +4.9%
β profiler
Time: β 14.768ms (SLO: <16.550ms π -10.8%) vs baseline: ~same
Memory: β 56.308MB (SLO: <57.500MB -2.1%) vs baseline: +4.7%
β resource-renaming
Time: β 19.475ms (SLO: <21.750ms π -10.5%) vs baseline: -0.2%
Memory: β 68.479MB (SLO: <70.500MB -2.9%) vs baseline: +5.0%
β span-code-origin
Time: β 19.776ms (SLO: <28.200ms π -29.9%) vs baseline: ~same
Memory: β 68.309MB (SLO: <71.000MB -3.8%) vs baseline: +4.9%
β tracer
Time: β 19.670ms (SLO: <21.750ms -9.6%) vs baseline: +0.3%
Memory: β 68.341MB (SLO: <70.000MB -2.4%) vs baseline: +4.7%
β tracer-and-profiler
Time: β 20.902ms (SLO: <23.500ms π -11.1%) vs baseline: +0.4%
Memory: β 69.422MB (SLO: <71.000MB -2.2%) vs baseline: +4.8%
β tracer-dont-create-db-spans
Time: β 19.692ms (SLO: <21.500ms -8.4%) vs baseline: +0.1%
Memory: β 68.358MB (SLO: <70.000MB -2.3%) vs baseline: +4.8%
β tracer-minimal
Time: β 16.824ms (SLO: <17.500ms -3.9%) vs baseline: +0.5%
Memory: β 68.361MB (SLO: <70.000MB -2.3%) vs baseline: +4.8%
β tracer-native
Time: β 19.522ms (SLO: <21.750ms π -10.2%) vs baseline: +0.3%
Memory: β 68.321MB (SLO: <72.500MB -5.8%) vs baseline: +4.8%
β tracer-no-caches
Time: β 17.594ms (SLO: <19.650ms π -10.5%) vs baseline: ~same
Memory: β 68.321MB (SLO: <70.000MB -2.4%) vs baseline: +4.8%
β tracer-no-databases
Time: β 19.132ms (SLO: <20.100ms -4.8%) vs baseline: ~same
Memory: β 68.243MB (SLO: <70.000MB -2.5%) vs baseline: +4.7%
β tracer-no-middleware
Time: β 19.254ms (SLO: <21.500ms π -10.4%) vs baseline: -0.3%
Memory: β 68.380MB (SLO: <70.000MB -2.3%) vs baseline: +4.9%
β tracer-no-templates
Time: β 19.632ms (SLO: <22.000ms π -10.8%) vs baseline: +1.5%
Memory: β 68.361MB (SLO: <70.500MB -3.0%) vs baseline: +4.8%
π‘ errortrackingdjangosimple - 6/6
β errortracking-enabled-all
Time: β 16.350ms (SLO: <19.850ms π -17.6%) vs baseline: +0.3%
Memory: β 69.908MB (SLO: <70.000MB π‘ -0.1%) vs baseline: +4.9%
β errortracking-enabled-user
Time: β 16.339ms (SLO: <19.400ms π -15.8%) vs baseline: ~same
Memory: β 69.862MB (SLO: <70.000MB π‘ -0.2%) vs baseline: +4.9%
β tracer-enabled
Time: β 16.279ms (SLO: <19.450ms π -16.3%) vs baseline: -0.3%
Memory: β 69.883MB (SLO: <70.000MB π‘ -0.2%) vs baseline: +4.9%
π‘ errortrackingflasksqli - 6/6
β errortracking-enabled-all
Time: β 2.071ms (SLO: <2.300ms -9.9%) vs baseline: +0.1%
Memory: β 55.896MB (SLO: <56.500MB π‘ -1.1%) vs baseline: +4.6%
β errortracking-enabled-user
Time: β 2.077ms (SLO: <2.250ms -7.7%) vs baseline: +0.3%
Memory: β 55.974MB (SLO: <56.500MB π‘ -0.9%) vs baseline: +4.9%
β tracer-enabled
Time: β 2.072ms (SLO: <2.300ms -9.9%) vs baseline: ~same
Memory: β 55.837MB (SLO: <56.500MB π‘ -1.2%) vs baseline: +4.6%
π‘ flasksimple - 18/18
β appsec-get
Time: β 3.376ms (SLO: <4.750ms π -28.9%) vs baseline: -0.4%
Memory: β 55.861MB (SLO: <66.500MB π -16.0%) vs baseline: +4.8%
β appsec-post
Time: β 2.859ms (SLO: <6.750ms π -57.6%) vs baseline: +0.2%
Memory: β 55.958MB (SLO: <66.500MB π -15.9%) vs baseline: +5.0%
β appsec-telemetry
Time: β 3.397ms (SLO: <4.750ms π -28.5%) vs baseline: +0.4%
Memory: β 55.866MB (SLO: <66.500MB π -16.0%) vs baseline: +4.7%
β debugger
Time: β 1.871ms (SLO: <2.000ms -6.5%) vs baseline: ~same
Memory: β 47.784MB (SLO: <49.500MB -3.5%) vs baseline: +4.9%
β iast-get
Time: β 1.857ms (SLO: <2.000ms -7.2%) vs baseline: ~same
Memory: β 44.869MB (SLO: <49.000MB -8.4%) vs baseline: +4.9%
β profiler
Time: β 1.862ms (SLO: <2.100ms π -11.3%) vs baseline: +0.1%
Memory: β 48.663MB (SLO: <50.000MB -2.7%) vs baseline: +4.8%
β resource-renaming
Time: β 3.364ms (SLO: <3.650ms -7.8%) vs baseline: +0.2%
Memory: β 55.893MB (SLO: <56.000MB π‘ -0.2%) vs baseline: +4.9%
β tracer
Time: β 3.374ms (SLO: <3.650ms -7.5%) vs baseline: +0.1%
Memory: β 55.884MB (SLO: <56.500MB π‘ -1.1%) vs baseline: +4.8%
β tracer-native
Time: β 3.373ms (SLO: <3.650ms -7.6%) vs baseline: ~same
Memory: β 55.826MB (SLO: <60.000MB -7.0%) vs baseline: +4.6%
π‘ flasksqli - 6/6
β appsec-enabled
Time: β 2.064ms (SLO: <4.200ms π -50.8%) vs baseline: -0.1%
Memory: β 55.836MB (SLO: <66.000MB π -15.4%) vs baseline: +4.8%
β iast-enabled
Time: β 2.076ms (SLO: <2.800ms π -25.9%) vs baseline: +0.4%
Memory: β 55.896MB (SLO: <62.500MB π -10.6%) vs baseline: +4.9%
β tracer-enabled
Time: β 2.062ms (SLO: <2.250ms -8.4%) vs baseline: -0.1%
Memory: β 55.837MB (SLO: <56.500MB π‘ -1.2%) vs baseline: +4.7%
π‘ httppropagationextract - 60/60
β all_styles_all_headers
Time: β 85.448Β΅s (SLO: <100.000Β΅s π -14.6%) vs baseline: +4.7%
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.5%
β b3_headers
Time: β 14.378Β΅s (SLO: <20.000Β΅s π -28.1%) vs baseline: -0.3%
Memory: β 34.977MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +5.0%
β b3_single_headers
Time: β 13.470Β΅s (SLO: <20.000Β΅s π -32.7%) vs baseline: -0.2%
Memory: β 34.957MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +4.8%
β datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_match
Time: β 63.933Β΅s (SLO: <80.000Β΅s π -20.1%) vs baseline: -0.4%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.7%
β datadog_tracecontext_tracestate_propagated_on_trace_id_match
Time: β 66.086Β΅s (SLO: <80.000Β΅s π -17.4%) vs baseline: ~same
Memory: β 34.996MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +4.9%
β empty_headers
Time: β 1.619Β΅s (SLO: <10.000Β΅s π -83.8%) vs baseline: +1.7%
Memory: β 34.977MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +4.7%
β full_t_id_datadog_headers
Time: β 22.683Β΅s (SLO: <30.000Β΅s π -24.4%) vs baseline: -0.9%
Memory: β 35.016MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +5.2%
β invalid_priority_header
Time: β 6.548Β΅s (SLO: <10.000Β΅s π -34.5%) vs baseline: -0.3%
Memory: β 34.957MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +5.2%
β invalid_span_id_header
Time: β 6.551Β΅s (SLO: <10.000Β΅s π -34.5%) vs baseline: +0.2%
Memory: β 34.878MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.7%
β invalid_tags_header
Time: β 6.509Β΅s (SLO: <10.000Β΅s π -34.9%) vs baseline: ~same
Memory: β 35.095MB (SLO: <35.500MB π‘ -1.1%) vs baseline: +5.3%
β invalid_trace_id_header
Time: β 6.560Β΅s (SLO: <10.000Β΅s π -34.4%) vs baseline: +0.8%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.7%
β large_header_no_matches
Time: β 27.591Β΅s (SLO: <30.000Β΅s -8.0%) vs baseline: ~same
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.9%
β large_valid_headers_all
Time: β 28.652Β΅s (SLO: <40.000Β΅s π -28.4%) vs baseline: ~same
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.7%
β medium_header_no_matches
Time: β 9.873Β΅s (SLO: <20.000Β΅s π -50.6%) vs baseline: +0.2%
Memory: β 34.957MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +4.7%
β medium_valid_headers_all
Time: β 11.220Β΅s (SLO: <20.000Β΅s π -43.9%) vs baseline: -0.6%
Memory: β 34.977MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +4.8%
β none_propagation_style
Time: β 1.720Β΅s (SLO: <10.000Β΅s π -82.8%) vs baseline: +0.3%
Memory: β 34.878MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.7%
β tracecontext_headers
Time: β 34.945Β΅s (SLO: <40.000Β΅s π -12.6%) vs baseline: +0.1%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.5%
β valid_headers_all
Time: β 6.521Β΅s (SLO: <10.000Β΅s π -34.8%) vs baseline: -0.2%
Memory: β 34.977MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +4.7%
β valid_headers_basic
Time: β 6.100Β΅s (SLO: <10.000Β΅s π -39.0%) vs baseline: ~same
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.7%
β wsgi_empty_headers
Time: β 1.599Β΅s (SLO: <10.000Β΅s π -84.0%) vs baseline: -0.5%
Memory: β 34.996MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +5.0%
β wsgi_invalid_priority_header
Time: β 6.612Β΅s (SLO: <10.000Β΅s π -33.9%) vs baseline: +0.7%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.7%
β wsgi_invalid_span_id_header
Time: β 1.599Β΅s (SLO: <10.000Β΅s π -84.0%) vs baseline: -0.1%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.7%
β wsgi_invalid_tags_header
Time: β 6.574Β΅s (SLO: <10.000Β΅s π -34.3%) vs baseline: ~same
Memory: β 34.996MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +5.0%
β wsgi_invalid_trace_id_header
Time: β 6.595Β΅s (SLO: <10.000Β΅s π -34.1%) vs baseline: -0.7%
Memory: β 34.957MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +5.0%
β wsgi_large_header_no_matches
Time: β 28.657Β΅s (SLO: <40.000Β΅s π -28.4%) vs baseline: +0.1%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.6%
β wsgi_large_valid_headers_all
Time: β 29.897Β΅s (SLO: <40.000Β΅s π -25.3%) vs baseline: +0.5%
Memory: β 34.937MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.4%
β wsgi_medium_header_no_matches
Time: β 10.177Β΅s (SLO: <20.000Β΅s π -49.1%) vs baseline: ~same
Memory: β 34.996MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +5.0%
β wsgi_medium_valid_headers_all
Time: β 11.571Β΅s (SLO: <20.000Β΅s π -42.1%) vs baseline: ~same
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.9%
β wsgi_valid_headers_all
Time: β 6.567Β΅s (SLO: <10.000Β΅s π -34.3%) vs baseline: -0.8%
Memory: β 35.016MB (SLO: <35.500MB π‘ -1.4%) vs baseline: +5.3%
β wsgi_valid_headers_basic
Time: β 6.116Β΅s (SLO: <10.000Β΅s π -38.8%) vs baseline: ~same
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.7%
π‘ httppropagationinject - 16/16
β ids_only
Time: β 21.953Β΅s (SLO: <30.000Β΅s π -26.8%) vs baseline: +5.3%
Memory: β 34.819MB (SLO: <35.500MB π‘ -1.9%) vs baseline: +4.5%
β with_all
Time: β 27.616Β΅s (SLO: <40.000Β΅s π -31.0%) vs baseline: -0.4%
Memory: β 34.957MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +4.7%
β with_dd_origin
Time: β 24.598Β΅s (SLO: <30.000Β΅s π -18.0%) vs baseline: ~same
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +4.9%
β with_priority_and_origin
Time: β 23.998Β΅s (SLO: <40.000Β΅s π -40.0%) vs baseline: +0.1%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +4.7%
β with_sampling_priority
Time: β 20.967Β΅s (SLO: <30.000Β΅s π -30.1%) vs baseline: +0.7%
Memory: β 34.957MB (SLO: <35.500MB π‘ -1.5%) vs baseline: +5.2%
β with_tags
Time: β 25.998Β΅s (SLO: <40.000Β΅s π -35.0%) vs baseline: ~same
Memory: β 34.859MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.6%
β with_tags_invalid
Time: β 27.378Β΅s (SLO: <40.000Β΅s π -31.6%) vs baseline: -0.6%
Memory: β 35.036MB (SLO: <35.500MB π‘ -1.3%) vs baseline: +4.9%
β with_tags_max_size
Time: β 26.373Β΅s (SLO: <40.000Β΅s π -34.1%) vs baseline: -0.5%
Memory: β 34.859MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +4.4%
π‘ iast_aspects - 40/40
β re_expand_aspect
Time: β 37.280Β΅s (SLO: <40.000Β΅s -6.8%) vs baseline: +6.7%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β re_expand_noaspect
Time: β 35.313Β΅s (SLO: <40.000Β΅s π -11.7%) vs baseline: +0.9%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β re_findall_aspect
Time: β 3.401Β΅s (SLO: <10.000Β΅s π -66.0%) vs baseline: -0.5%
Memory: β 42.526MB (SLO: <43.500MB -2.2%) vs baseline: +4.7%
β re_findall_noaspect
Time: β 3.257Β΅s (SLO: <10.000Β΅s π -67.4%) vs baseline: -0.7%
Memory: β 42.507MB (SLO: <43.500MB -2.3%) vs baseline: +4.6%
β re_finditer_aspect
Time: β 4.558Β΅s (SLO: <10.000Β΅s π -54.4%) vs baseline: +0.3%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β re_finditer_noaspect
Time: β 3.279Β΅s (SLO: <10.000Β΅s π -67.2%) vs baseline: -1.0%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β re_fullmatch_aspect
Time: β 2.800Β΅s (SLO: <10.000Β΅s π -72.0%) vs baseline: -0.2%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β re_fullmatch_noaspect
Time: β 3.105Β΅s (SLO: <10.000Β΅s π -69.0%) vs baseline: +0.4%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β re_group_aspect
Time: β 4.780Β΅s (SLO: <10.000Β΅s π -52.2%) vs baseline: -1.5%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0%
β re_group_noaspect
Time: β 4.901Β΅s (SLO: <10.000Β΅s π -51.0%) vs baseline: +0.5%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
β re_groups_aspect
Time: β 4.987Β΅s (SLO: <10.000Β΅s π -50.1%) vs baseline: +1.1%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β re_groups_noaspect
Time: β 4.995Β΅s (SLO: <10.000Β΅s π -50.0%) vs baseline: +0.9%
Memory: β 42.526MB (SLO: <43.500MB -2.2%) vs baseline: +4.7%
β re_match_aspect
Time: β 2.843Β΅s (SLO: <10.000Β΅s π -71.6%) vs baseline: -0.3%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.0%
β re_match_noaspect
Time: β 3.100Β΅s (SLO: <10.000Β΅s π -69.0%) vs baseline: +0.6%
Memory: β 42.526MB (SLO: <43.500MB -2.2%) vs baseline: +4.9%
β re_search_aspect
Time: β 2.660Β΅s (SLO: <10.000Β΅s π -73.4%) vs baseline: -0.2%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9%
β re_search_noaspect
Time: β 2.920Β΅s (SLO: <10.000Β΅s π -70.8%) vs baseline: +0.9%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +5.1%
β re_sub_aspect
Time: β 3.579Β΅s (SLO: <10.000Β΅s π -64.2%) vs baseline: +0.9%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.7%
β re_sub_noaspect
Time: β 4.048Β΅s (SLO: <10.000Β΅s π -59.5%) vs baseline: +2.4%
Memory: β 42.605MB (SLO: <43.500MB -2.1%) vs baseline: +4.8%
β re_subn_aspect
Time: β 3.819Β΅s (SLO: <10.000Β΅s π -61.8%) vs baseline: +0.4%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +5.1%
β re_subn_noaspect
Time: β 4.071Β΅s (SLO: <10.000Β΅s π -59.3%) vs baseline: -0.7%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +5.0%
π‘ iastaspectssplit - 12/12
β rsplit_aspect
Time: β 1.609Β΅s (SLO: <10.000Β΅s π -83.9%) vs baseline: +3.5%
Memory: β 42.526MB (SLO: <43.500MB -2.2%) vs baseline: +4.9%
β rsplit_noaspect
Time: β 1.615Β΅s (SLO: <10.000Β΅s π -83.8%) vs baseline: -0.8%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9%
β split_aspect
Time: β 1.560Β΅s (SLO: <10.000Β΅s π -84.4%) vs baseline: +1.8%
Memory: β 42.566MB (SLO: <43.500MB -2.1%) vs baseline: +4.6%
β split_noaspect
Time: β 1.612Β΅s (SLO: <10.000Β΅s π -83.9%) vs baseline: +1.0%
Memory: β 42.644MB (SLO: <43.500MB π‘ -2.0%) vs baseline: +4.9%
β splitlines_aspect
Time: β 1.514Β΅s (SLO: <10.000Β΅s π -84.9%) vs baseline: +0.9%
Memory: β 42.625MB (SLO: <43.500MB -2.0%) vs baseline: +4.9%
β splitlines_noaspect
Time: β 1.558Β΅s (SLO: <10.000Β΅s π -84.4%) vs baseline: +0.4%
Memory: β 42.585MB (SLO: <43.500MB -2.1%) vs baseline: +4.9%
π‘ otelspan - 22/22
β add-event
Time: β 40.230ms (SLO: <47.150ms π -14.7%) vs baseline: ~same
Memory: β 39.466MB (SLO: <47.000MB π -16.0%) vs baseline: +4.3%
β add-metrics
Time: β 261.446ms (SLO: <344.800ms π -24.2%) vs baseline: +0.1%
Memory: β 43.766MB (SLO: <47.500MB -7.9%) vs baseline: +4.9%
β add-tags
Time: β 316.984ms (SLO: <321.000ms π‘ -1.3%) vs baseline: -0.2%
Memory: β 43.755MB (SLO: <47.500MB -7.9%) vs baseline: +4.5%
β get-context
Time: β 80.190ms (SLO: <92.350ms π -13.2%) vs baseline: -0.1%
Memory: β 39.922MB (SLO: <46.500MB π -14.1%) vs baseline: +5.1%
β is-recording
Time: β 37.954ms (SLO: <44.500ms π -14.7%) vs baseline: +0.3%
Memory: β 39.539MB (SLO: <47.500MB π -16.8%) vs baseline: +5.0%
β record-exception
Time: β 58.847ms (SLO: <67.650ms π -13.0%) vs baseline: -0.4%
Memory: β 40.102MB (SLO: <47.000MB π -14.7%) vs baseline: +5.0%
β set-status
Time: β 44.391ms (SLO: <50.400ms π -11.9%) vs baseline: +0.3%
Memory: β 39.549MB (SLO: <47.000MB π -15.9%) vs baseline: +5.0%
β start
Time: β 37.873ms (SLO: <43.450ms π -12.8%) vs baseline: +1.8%
Memory: β 39.435MB (SLO: <47.000MB π -16.1%) vs baseline: +4.8%
β start-finish
Time: β 82.861ms (SLO: <88.000ms -5.8%) vs baseline: ~same
Memory: β 37.395MB (SLO: <46.500MB π -19.6%) vs baseline: +4.7%
β start-finish-telemetry
Time: β 84.636ms (SLO: <89.000ms -4.9%) vs baseline: ~same
Memory: β 37.297MB (SLO: <46.500MB π -19.8%) vs baseline: +4.6%
β update-name
Time: β 38.574ms (SLO: <45.150ms π -14.6%) vs baseline: ~same
Memory: β 39.623MB (SLO: <47.000MB π -15.7%) vs baseline: +4.9%
π‘ ratelimiter - 12/12
β defaults
Time: β 2.362Β΅s (SLO: <10.000Β΅s π -76.4%) vs baseline: -0.5%
Memory: β 35.095MB (SLO: <35.500MB π‘ -1.1%) vs baseline: +4.5%
β high_rate_limit
Time: β 2.426Β΅s (SLO: <10.000Β΅s π -75.7%) vs baseline: ~same
Memory: β 35.095MB (SLO: <35.500MB π‘ -1.1%) vs baseline: +4.8%
β long_window
Time: β 2.380Β΅s (SLO: <10.000Β΅s π -76.2%) vs baseline: +0.9%
Memory: β 35.134MB (SLO: <35.500MB π‘ -1.0%) vs baseline: +4.9%
β low_rate_limit
Time: β 2.363Β΅s (SLO: <10.000Β΅s π -76.4%) vs baseline: ~same
Memory: β 35.114MB (SLO: <35.500MB π‘ -1.1%) vs baseline: +4.6%
β no_rate_limit
Time: β 0.822Β΅s (SLO: <10.000Β΅s π -91.8%) vs baseline: -1.0%
Memory: β 35.095MB (SLO: <35.500MB π‘ -1.1%) vs baseline: +4.7%
β short_window
Time: β 2.496Β΅s (SLO: <10.000Β΅s π -75.0%) vs baseline: +0.8%
Memory: β 35.134MB (SLO: <35.500MB π‘ -1.0%) vs baseline: +4.8%
π‘ recursivecomputation - 8/8
β deep
Time: β 308.648ms (SLO: <320.950ms -3.8%) vs baseline: -0.2%
Memory: β 36.078MB (SLO: <36.500MB π‘ -1.2%) vs baseline: +5.2%
β deep-profiled
Time: β 314.640ms (SLO: <359.150ms π -12.4%) vs baseline: -0.2%
Memory: β 39.793MB (SLO: <40.500MB π‘ -1.7%) vs baseline: +4.7%
β medium
Time: β 6.994ms (SLO: <7.400ms -5.5%) vs baseline: -0.1%
Memory: β 34.878MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +5.0%
β shallow
Time: β 0.949ms (SLO: <1.050ms -9.6%) vs baseline: +0.9%
Memory: β 34.819MB (SLO: <35.500MB π‘ -1.9%) vs baseline: +5.2%
π‘ samplingrules - 8/8
β average_match
Time: β 137.355Β΅s (SLO: <290.000Β΅s π -52.6%) vs baseline: +0.2%
Memory: β 34.898MB (SLO: <35.500MB π‘ -1.7%) vs baseline: +5.0%
β high_match
Time: β 172.985Β΅s (SLO: <480.000Β΅s π -64.0%) vs baseline: -1.3%
Memory: β 34.839MB (SLO: <35.500MB π‘ -1.9%) vs baseline: +4.5%
β low_match
Time: β 98.534Β΅s (SLO: <120.000Β΅s π -17.9%) vs baseline: -0.7%
Memory: β 603.697MB (SLO: <700.000MB π -13.8%) vs baseline: +4.8%
β very_low_match
Time: β 2.652ms (SLO: <8.500ms π -68.8%) vs baseline: -0.4%
Memory: β 71.100MB (SLO: <75.000MB -5.2%) vs baseline: +4.7%
π‘ sethttpmeta - 32/32
β all-disabled
Time: β 10.477Β΅s (SLO: <20.000Β΅s π -47.6%) vs baseline: -1.4%
Memory: β 35.625MB (SLO: <36.000MB π‘ -1.0%) vs baseline: +4.6%
β all-enabled
Time: β 41.040Β΅s (SLO: <50.000Β΅s π -17.9%) vs baseline: +2.2%
Memory: β 35.684MB (SLO: <36.000MB π‘ -0.9%) vs baseline: +5.1%
β collectipvariant_exists
Time: β 40.772Β΅s (SLO: <50.000Β΅s π -18.5%) vs baseline: +0.2%
Memory: β 35.684MB (SLO: <36.000MB π‘ -0.9%) vs baseline: +4.7%
β no-collectipvariant
Time: β 40.138Β΅s (SLO: <50.000Β΅s π -19.7%) vs baseline: ~same
Memory: β 35.665MB (SLO: <36.000MB π‘ -0.9%) vs baseline: +4.9%
β no-useragentvariant
Time: β 38.706Β΅s (SLO: <50.000Β΅s π -22.6%) vs baseline: -0.5%
Memory: β 35.704MB (SLO: <36.000MB π‘ -0.8%) vs baseline: +5.0%
β obfuscation-no-query
Time: β 40.453Β΅s (SLO: <50.000Β΅s π -19.1%) vs baseline: -0.4%
Memory: β 35.684MB (SLO: <36.000MB π‘ -0.9%) vs baseline: +4.6%
β obfuscation-regular-case-explicit-query
Time: β 76.135Β΅s (SLO: <90.000Β΅s π -15.4%) vs baseline: +0.2%
Memory: β 35.743MB (SLO: <36.500MB -2.1%) vs baseline: +5.1%
β obfuscation-regular-case-implicit-query
Time: β 76.456Β΅s (SLO: <90.000Β΅s π -15.0%) vs baseline: -0.1%
Memory: β 35.645MB (SLO: <36.500MB -2.3%) vs baseline: +4.9%
β obfuscation-send-querystring-disabled
Time: β 154.300Β΅s (SLO: <170.000Β΅s -9.2%) vs baseline: -0.3%
Memory: β 35.704MB (SLO: <36.500MB -2.2%) vs baseline: +5.0%
β obfuscation-worst-case-explicit-query
Time: β 148.144Β΅s (SLO: <160.000Β΅s -7.4%) vs baseline: -0.5%
Memory: β 35.704MB (SLO: <36.500MB -2.2%) vs baseline: +5.4%
β obfuscation-worst-case-implicit-query
Time: β 154.800Β΅s (SLO: <170.000Β΅s -8.9%) vs baseline: -0.4%
Memory: β 35.822MB (SLO: <36.500MB π‘ -1.9%) vs baseline: +5.3%
β useragentvariant_exists_1
Time: β 39.461Β΅s (SLO: <50.000Β΅s π -21.1%) vs baseline: -0.3%
Memory: β 35.743MB (SLO: <36.000MB π‘ -0.7%) vs baseline: +4.9%
β useragentvariant_exists_2
Time: β 40.490Β΅s (SLO: <50.000Β΅s π -19.0%) vs baseline: -0.8%
Memory: β 35.704MB (SLO: <36.000MB π‘ -0.8%) vs baseline: +4.7%
β useragentvariant_exists_3
Time: β 39.931Β΅s (SLO: <50.000Β΅s π -20.1%) vs baseline: -0.7%
Memory: β 35.665MB (SLO: <36.000MB π‘ -0.9%) vs baseline: +4.7%
β useragentvariant_not_exists_1
Time: β 39.544Β΅s (SLO: <50.000Β΅s π -20.9%) vs baseline: -0.2%
Memory: β 35.724MB (SLO: <36.000MB π‘ -0.8%) vs baseline: +5.1%
β useragentvariant_not_exists_2
Time: β 39.387Β΅s (SLO: <50.000Β΅s π -21.2%) vs baseline: -0.1%
Memory: β 35.842MB (SLO: <36.000MB π‘ -0.4%) vs baseline: +5.3%
π‘ span - 26/26
β add-event
Time: β 18.172ms (SLO: <22.500ms π -19.2%) vs baseline: +0.4%
Memory: β 36.985MB (SLO: <53.000MB π -30.2%) vs baseline: +4.9%
β add-metrics
Time: β 87.957ms (SLO: <93.500ms -5.9%) vs baseline: -0.5%
Memory: β 41.001MB (SLO: <53.000MB π -22.6%) vs baseline: +4.6%
β add-tags
Time: β 141.579ms (SLO: <155.000ms -8.7%) vs baseline: -0.3%
Memory: β 41.144MB (SLO: <53.000MB π -22.4%) vs baseline: +4.9%
β get-context
Time: β 16.960ms (SLO: <20.500ms π -17.3%) vs baseline: -0.1%
Memory: β 36.776MB (SLO: <53.000MB π -30.6%) vs baseline: +4.9%
β is-recording
Time: β 17.281ms (SLO: <20.500ms π -15.7%) vs baseline: +0.4%
Memory: β 36.758MB (SLO: <53.000MB π -30.6%) vs baseline: +4.7%
β record-exception
Time: β 36.694ms (SLO: <40.000ms -8.3%) vs baseline: +0.4%
Memory: β 37.320MB (SLO: <53.000MB π -29.6%) vs baseline: +5.0%
β set-status
Time: β 18.639ms (SLO: <22.000ms π -15.3%) vs baseline: +0.3%
Memory: β 36.776MB (SLO: <53.000MB π -30.6%) vs baseline: +4.9%
β start
Time: β 17.254ms (SLO: <20.500ms π -15.8%) vs baseline: +2.0%
Memory: β 36.817MB (SLO: <53.000MB π -30.5%) vs baseline: +5.1%
β start-finish
Time: β 50.834ms (SLO: <52.500ms -3.2%) vs baseline: ~same
Memory: β 34.859MB (SLO: <35.500MB π‘ -1.8%) vs baseline: +5.0%
β start-finish-telemetry
Time: β 52.226ms (SLO: <54.500ms -4.2%) vs baseline: +0.1%
Memory: β 34.800MB (SLO: <35.500MB π‘ -2.0%) vs baseline: +5.0%
β start-finish-traceid128
Time: β 53.893ms (SLO: <57.000ms -5.5%) vs baseline: -0.6%
Memory: β 34.800MB (SLO: <35.500MB π‘ -2.0%) vs baseline: +4.8%
β start-traceid128
Time: β 17.163ms (SLO: <22.500ms π -23.7%) vs baseline: -0.3%
Memory: β 36.764MB (SLO: <53.000MB π -30.6%) vs baseline: +4.7%
β update-name
Time: β 17.247ms (SLO: <22.000ms π -21.6%) vs baseline: -0.5%
Memory: β 36.933MB (SLO: <53.000MB π -30.3%) vs baseline: +5.0%
π‘ tracer - 6/6
β large
Time: β 29.030ms (SLO: <32.950ms π -11.9%) vs baseline: -0.2%
Memory: β 35.940MB (SLO: <36.500MB π‘ -1.5%) vs baseline: +4.3%
β medium
Time: β 2.878ms (SLO: <3.200ms π -10.1%) vs baseline: -0.2%
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +5.2%
β small
Time: β 329.996Β΅s (SLO: <370.000Β΅s π -10.8%) vs baseline: +1.6%
Memory: β 34.918MB (SLO: <35.500MB π‘ -1.6%) vs baseline: +5.1%
β οΈ Unstable Tests (1 suite)
β οΈ packagesupdateimporteddependencies - 24/24 (1 unstable)
β import_many
Time: β 155.079Β΅s (SLO: <170.000Β΅s -8.8%) vs baseline: +0.3%
Memory: β 39.889MB (SLO: <43.000MB -7.2%) vs baseline: +4.5%
β import_many_cached
Time: β 120.547Β΅s (SLO: <130.000Β΅s -7.3%) vs baseline: ~same
Memory: β 39.920MB (SLO: <43.000MB -7.2%) vs baseline: +5.1%
β import_many_stdlib
Time: β 0.758ms (SLO: <1.750ms π -56.7%) vs baseline: -0.1%
Memory: β 39.823MB (SLO: <43.000MB -7.4%) vs baseline: +4.6%
β οΈ import_many_stdlib_cached
Time: β οΈ 0.173ms (SLO: <1.100ms π -84.3%) vs baseline: +0.8%
Memory: β 39.863MB (SLO: <43.000MB -7.3%) vs baseline: +4.9%
β import_many_unknown
Time: β 835.357Β΅s (SLO: <890.000Β΅s -6.1%) vs baseline: +0.3%
Memory: β 40.021MB (SLO: <43.000MB -6.9%) vs baseline: +5.2%
β import_many_unknown_cached
Time: β 790.076Β΅s (SLO: <870.000Β΅s -9.2%) vs baseline: -0.5%
Memory: β 39.927MB (SLO: <43.000MB -7.1%) vs baseline: +4.5%
β import_one
Time: β 19.765Β΅s (SLO: <30.000Β΅s π -34.1%) vs baseline: +0.3%
Memory: β 39.843MB (SLO: <43.000MB -7.3%) vs baseline: +5.1%
β import_one_cache
Time: β 6.306Β΅s (SLO: <10.000Β΅s π -36.9%) vs baseline: +0.4%
Memory: β 39.782MB (SLO: <43.000MB -7.5%) vs baseline: +4.4%
β import_one_stdlib
Time: β 18.797Β΅s (SLO: <20.000Β΅s -6.0%) vs baseline: +0.7%
Memory: β 39.940MB (SLO: <43.000MB -7.1%) vs baseline: +5.0%
β import_one_stdlib_cache
Time: β 6.267Β΅s (SLO: <10.000Β΅s π -37.3%) vs baseline: -0.3%
Memory: β 39.744MB (SLO: <43.000MB -7.6%) vs baseline: +4.7%
β import_one_unknown
Time: β 45.240Β΅s (SLO: <50.000Β΅s -9.5%) vs baseline: -0.6%
Memory: β 39.773MB (SLO: <43.000MB -7.5%) vs baseline: +4.4%
β import_one_unknown_cache
Time: β 6.268Β΅s (SLO: <10.000Β΅s π -37.3%) vs baseline: -0.1%
Memory: β 39.855MB (SLO: <43.000MB -7.3%) vs baseline: +5.3%
β All Tests Passing (3 suites)
β iastpropagation - 8/8
β no-propagation
Time: β 49.853Β΅s (SLO: <60.000Β΅s π -16.9%) vs baseline: +0.5%
Memory: β 38.299MB (SLO: <42.000MB -8.8%) vs baseline: +4.8%
β propagation_enabled
Time: β 138.793Β΅s (SLO: <190.000Β΅s π -27.0%) vs baseline: -0.3%
Memory: β 38.358MB (SLO: <42.000MB -8.7%) vs baseline: +5.0%
β propagation_enabled_100
Time: β 1.580ms (SLO: <2.300ms π -31.3%) vs baseline: +0.2%
Memory: β 38.358MB (SLO: <42.000MB -8.7%) vs baseline: +4.8%
β propagation_enabled_1000
Time: β 29.433ms (SLO: <34.550ms π -14.8%) vs baseline: +0.2%
Memory: β 38.692MB (SLO: <42.000MB -7.9%) vs baseline: +5.1%
β otelsdkspan - 24/24
β add-event
Time: β 40.513ms (SLO: <42.000ms -3.5%) vs baseline: +0.1%
Memory: β 37.768MB (SLO: <39.000MB -3.2%) vs baseline: +5.2%
β add-link
Time: β 36.513ms (SLO: <38.550ms -5.3%) vs baseline: ~same
Memory: β 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.7%
β add-metrics
Time: β 220.265ms (SLO: <232.000ms -5.1%) vs baseline: +0.3%
Memory: β 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9%
β add-tags
Time: β 213.146ms (SLO: <221.600ms -3.8%) vs baseline: -0.6%
Memory: β 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0%
β get-context
Time: β 29.112ms (SLO: <31.300ms -7.0%) vs baseline: ~same
Memory: β 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +5.0%
β is-recording
Time: β 29.033ms (SLO: <31.000ms -6.3%) vs baseline: -0.5%
Memory: β 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9%
β record-exception
Time: β 63.210ms (SLO: <65.850ms -4.0%) vs baseline: -0.3%
Memory: β 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.6%
β set-status
Time: β 31.970ms (SLO: <34.150ms -6.4%) vs baseline: ~same
Memory: β 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.6%
β start
Time: β 29.351ms (SLO: <30.150ms -2.7%) vs baseline: +2.2%
Memory: β 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9%
β start-finish
Time: β 33.676ms (SLO: <35.350ms -4.7%) vs baseline: -0.8%
Memory: β 37.729MB (SLO: <39.000MB -3.3%) vs baseline: +4.9%
β start-finish-telemetry
Time: β 33.641ms (SLO: <35.450ms -5.1%) vs baseline: -0.8%
Memory: β 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +4.9%
β update-name
Time: β 31.114ms (SLO: <33.400ms -6.8%) vs baseline: +0.1%
Memory: β 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +5.0%
β packagespackageforrootmodulemapping - 4/4
β cache_off
Time: β 344.255ms (SLO: <354.300ms -2.8%) vs baseline: -1.0%
Memory: β 41.707MB (SLO: <43.500MB -4.1%) vs baseline: +5.2%
β cache_on
Time: β 0.385Β΅s (SLO: <10.000Β΅s π -96.2%) vs baseline: +1.3%
Memory: β 40.300MB (SLO: <43.000MB -6.3%) vs baseline: +4.8%
βΉοΈ 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
Idk what's wrong with the prechecks test. There's no error message.
Idk what's wrong with the
precheckstest. There's no error message.
Style
Creating environment: lint
Checking dependencies
Syncing dependencies
cmd [1] | ruff format --check .
Would reformat: ddtrace/llmobs/_integrations/mcp.py
1 file would be reformatted, 2380 files already formatted
You have to uncollapse the "Style" section (not intuitive, but helps with overall output legibility)
Codeowners resolved as
ddtrace/contrib/internal/mcp/patch.py @DataDog/ml-observability
ddtrace/llmobs/_integrations/mcp.py @DataDog/ml-observability
releasenotes/notes/Add-tracing-of-initialization-requests-and-responses-on-MCP-servers-51d32286dcd52a7d.yaml @DataDog/apm-python
tests/contrib/mcp/conftest.py @DataDog/ml-observability
tests/contrib/mcp/test_mcp_llmobs.py @DataDog/ml-observability
tests/contrib/mcp/test_mcp_patch.py @DataDog/ml-observability
/merge
View all feedbacks in Devflow UI.
2025-12-23 18:13:24 UTC :information_source: Start processing command /merge
2025-12-23 18:13:29 UTC :information_source: MergeQueue: pull request added to the queue
The expected merge time in main is approximately 52m (p90).
2025-12-23 19:01:27 UTC :information_source: MergeQueue: This merge request was merged