-
Notifications
You must be signed in to change notification settings - Fork 471
feat(tracer): update tags for proxy inferred spans #15564
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat(tracer): update tags for proxy inferred spans #15564
Conversation
|
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 249 ± 2 ms. The average import time from base is: 250 ± 3 ms. The import time difference between this PR and base is: -1.4 ± 0.1 ms. Import time breakdownThe following import paths have grown:
|
Performance SLOsComparing candidate florentin.labelle/APPSEC-60048/proxy-inferred-spans-appsec (eb71528) with baseline main (ddecdc2) 📈 Performance Regressions (2 suites)📈 iastaspectsospath - 24/24✅ ospathbasename_aspectTime: ✅ 5.111µs (SLO: <10.000µs 📉 -48.9%) vs baseline: 📈 +22.7% Memory: ✅ 38.614MB (SLO: <41.000MB -5.8%) vs baseline: +5.0% ✅ ospathbasename_noaspectTime: ✅ 1.090µs (SLO: <10.000µs 📉 -89.1%) vs baseline: +0.8% Memory: ✅ 38.594MB (SLO: <41.000MB -5.9%) vs baseline: +4.8% ✅ ospathjoin_aspectTime: ✅ 6.017µs (SLO: <10.000µs 📉 -39.8%) vs baseline: +0.2% Memory: ✅ 38.555MB (SLO: <41.000MB -6.0%) vs baseline: +5.0% ✅ ospathjoin_noaspectTime: ✅ 2.284µs (SLO: <10.000µs 📉 -77.2%) vs baseline: ~same Memory: ✅ 38.594MB (SLO: <41.000MB -5.9%) vs baseline: +4.8% ✅ ospathnormcase_aspectTime: ✅ 3.446µs (SLO: <10.000µs 📉 -65.5%) vs baseline: -1.0% Memory: ✅ 38.535MB (SLO: <41.000MB -6.0%) vs baseline: +5.0% ✅ ospathnormcase_noaspectTime: ✅ 0.575µs (SLO: <10.000µs 📉 -94.2%) vs baseline: +0.7% Memory: ✅ 38.555MB (SLO: <41.000MB -6.0%) vs baseline: +4.9% ✅ ospathsplit_aspectTime: ✅ 4.769µs (SLO: <10.000µs 📉 -52.3%) vs baseline: -1.1% Memory: ✅ 38.692MB (SLO: <41.000MB -5.6%) vs baseline: +5.4% ✅ ospathsplit_noaspectTime: ✅ 1.597µs (SLO: <10.000µs 📉 -84.0%) vs baseline: +0.6% Memory: ✅ 38.594MB (SLO: <41.000MB -5.9%) vs baseline: +5.0% ✅ ospathsplitdrive_aspectTime: ✅ 3.705µs (SLO: <10.000µs 📉 -63.0%) vs baseline: +0.3% Memory: ✅ 38.594MB (SLO: <41.000MB -5.9%) vs baseline: +5.0% ✅ ospathsplitdrive_noaspectTime: ✅ 0.698µs (SLO: <10.000µs 📉 -93.0%) vs baseline: -0.4% Memory: ✅ 38.555MB (SLO: <41.000MB -6.0%) vs baseline: +4.9% ✅ ospathsplitext_aspectTime: ✅ 4.522µs (SLO: <10.000µs 📉 -54.8%) vs baseline: ~same Memory: ✅ 38.496MB (SLO: <41.000MB -6.1%) vs baseline: +4.8% ✅ ospathsplitext_noaspectTime: ✅ 1.381µs (SLO: <10.000µs 📉 -86.2%) vs baseline: ~same Memory: ✅ 38.574MB (SLO: <41.000MB -5.9%) vs baseline: +4.6% 📈 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.325µs (SLO: <20.000µs 📉 -83.4%) vs baseline: 📈 +16.3% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.6% ✅ 1-count-metrics-100-timesTime: ✅ 198.400µs (SLO: <220.000µs -9.8%) vs baseline: +0.3% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.3% ✅ 1-distribution-metric-1-timesTime: ✅ 3.162µs (SLO: <20.000µs 📉 -84.2%) vs baseline: -0.5% Memory: ✅ 34.741MB (SLO: <35.500MB -2.1%) vs baseline: +4.0% ✅ 1-distribution-metrics-100-timesTime: ✅ 213.090µs (SLO: <230.000µs -7.4%) vs baseline: ~same Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.3% ✅ 1-gauge-metric-1-timesTime: ✅ 2.134µs (SLO: <20.000µs 📉 -89.3%) vs baseline: -2.0% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.5% ✅ 1-gauge-metrics-100-timesTime: ✅ 136.258µs (SLO: <150.000µs -9.2%) vs baseline: -0.5% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.4% ✅ 1-rate-metric-1-timesTime: ✅ 2.997µs (SLO: <20.000µs 📉 -85.0%) vs baseline: +0.4% Memory: ✅ 34.662MB (SLO: <35.500MB -2.4%) vs baseline: +4.1% ✅ 1-rate-metrics-100-timesTime: ✅ 211.767µs (SLO: <250.000µs 📉 -15.3%) vs baseline: +0.5% Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.4% ✅ 100-count-metrics-100-timesTime: ✅ 19.977ms (SLO: <22.000ms -9.2%) vs baseline: -0.9% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.6% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.211ms (SLO: <2.550ms 📉 -13.3%) vs baseline: +0.7% Memory: ✅ 34.642MB (SLO: <35.500MB -2.4%) vs baseline: +4.3% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.405ms (SLO: <1.550ms -9.3%) vs baseline: -0.4% Memory: ✅ 34.721MB (SLO: <35.500MB -2.2%) vs baseline: +4.9% ✅ 100-rate-metrics-100-timesTime: ✅ 2.184ms (SLO: <2.550ms 📉 -14.4%) vs baseline: +0.3% Memory: ✅ 34.721MB (SLO: <35.500MB -2.2%) vs baseline: +5.0% ✅ flush-1-metricTime: ✅ 4.473µs (SLO: <20.000µs 📉 -77.6%) vs baseline: -0.9% Memory: ✅ 35.075MB (SLO: <35.500MB 🟡 -1.2%) vs baseline: +4.8% ✅ flush-100-metricsTime: ✅ 173.419µs (SLO: <250.000µs 📉 -30.6%) vs baseline: ~same Memory: ✅ 35.114MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +4.9% ✅ flush-1000-metricsTime: ✅ 2.184ms (SLO: <2.500ms 📉 -12.6%) vs baseline: +0.5% Memory: ✅ 35.901MB (SLO: <36.500MB 🟡 -1.6%) vs baseline: +4.7% 🟡 Near SLO Breach (14 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 19.567ms (SLO: <22.300ms 📉 -12.3%) vs baseline: ~same Memory: ✅ 68.223MB (SLO: <70.500MB -3.2%) vs baseline: +4.9% ✅ exception-replay-enabledTime: ✅ 1.364ms (SLO: <1.450ms -6.0%) vs baseline: +0.1% Memory: ✅ 66.314MB (SLO: <67.500MB 🟡 -1.8%) vs baseline: +5.1% ✅ iastTime: ✅ 19.564ms (SLO: <22.250ms 📉 -12.1%) vs baseline: -0.4% Memory: ✅ 68.243MB (SLO: <70.000MB -2.5%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.482ms (SLO: <16.550ms -6.5%) vs baseline: ~same Memory: ✅ 56.342MB (SLO: <57.500MB -2.0%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 19.558ms (SLO: <21.750ms 📉 -10.1%) vs baseline: +0.6% Memory: ✅ 68.115MB (SLO: <70.500MB -3.4%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 19.920ms (SLO: <28.200ms 📉 -29.4%) vs baseline: +0.4% Memory: ✅ 68.234MB (SLO: <71.000MB -3.9%) vs baseline: +5.0% ✅ tracerTime: ✅ 19.561ms (SLO: <21.750ms 📉 -10.1%) vs baseline: ~same Memory: ✅ 68.154MB (SLO: <70.000MB -2.6%) vs baseline: +4.8% ✅ tracer-and-profilerTime: ✅ 21.686ms (SLO: <23.500ms -7.7%) vs baseline: ~same Memory: ✅ 69.265MB (SLO: <71.000MB -2.4%) vs baseline: +4.7% ✅ tracer-dont-create-db-spansTime: ✅ 19.639ms (SLO: <21.500ms -8.7%) vs baseline: -0.1% Memory: ✅ 68.164MB (SLO: <70.000MB -2.6%) vs baseline: +4.8% ✅ tracer-minimalTime: ✅ 16.776ms (SLO: <17.500ms -4.1%) vs baseline: ~same Memory: ✅ 67.967MB (SLO: <70.000MB -2.9%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 19.467ms (SLO: <21.750ms 📉 -10.5%) vs baseline: +0.2% Memory: ✅ 68.144MB (SLO: <72.500MB -6.0%) vs baseline: +4.8% ✅ tracer-no-cachesTime: ✅ 17.933ms (SLO: <19.650ms -8.7%) vs baseline: +1.9% Memory: ✅ 68.164MB (SLO: <70.000MB -2.6%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 19.511ms (SLO: <20.100ms -2.9%) vs baseline: +1.9% Memory: ✅ 68.056MB (SLO: <70.000MB -2.8%) vs baseline: +5.2% ✅ tracer-no-middlewareTime: ✅ 19.356ms (SLO: <21.500ms -10.0%) vs baseline: +0.2% Memory: ✅ 68.213MB (SLO: <70.000MB -2.6%) vs baseline: +5.0% ✅ tracer-no-templatesTime: ✅ 19.549ms (SLO: <22.000ms 📉 -11.1%) vs baseline: +1.0% Memory: ✅ 68.221MB (SLO: <70.500MB -3.2%) vs baseline: +5.0% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 16.277ms (SLO: <19.850ms 📉 -18.0%) vs baseline: -0.7% Memory: ✅ 69.793MB (SLO: <70.000MB 🟡 -0.3%) vs baseline: +5.0% ✅ errortracking-enabled-userTime: ✅ 16.327ms (SLO: <19.400ms 📉 -15.8%) vs baseline: -0.2% Memory: ✅ 69.813MB (SLO: <70.000MB 🟡 -0.3%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 16.360ms (SLO: <19.450ms 📉 -15.9%) vs baseline: -0.1% Memory: ✅ 69.776MB (SLO: <70.000MB 🟡 -0.3%) vs baseline: +4.9% 🟡 errortrackingflasksqli - 6/6✅ errortracking-enabled-allTime: ✅ 2.065ms (SLO: <2.300ms 📉 -10.2%) vs baseline: +0.1% Memory: ✅ 55.738MB (SLO: <56.500MB 🟡 -1.3%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 2.077ms (SLO: <2.250ms -7.7%) vs baseline: +0.2% Memory: ✅ 55.817MB (SLO: <56.500MB 🟡 -1.2%) vs baseline: +5.0% ✅ tracer-enabledTime: ✅ 2.068ms (SLO: <2.300ms 📉 -10.1%) vs baseline: +0.3% Memory: ✅ 55.719MB (SLO: <56.500MB 🟡 -1.4%) vs baseline: +4.7% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 3.367ms (SLO: <4.750ms 📉 -29.1%) vs baseline: -0.6% Memory: ✅ 55.485MB (SLO: <66.500MB 📉 -16.6%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 2.863ms (SLO: <6.750ms 📉 -57.6%) vs baseline: +0.3% Memory: ✅ 55.875MB (SLO: <66.500MB 📉 -16.0%) vs baseline: +4.8% ✅ appsec-telemetryTime: ✅ 3.398ms (SLO: <4.750ms 📉 -28.5%) vs baseline: +0.6% Memory: ✅ 55.542MB (SLO: <66.500MB 📉 -16.5%) vs baseline: +4.9% ✅ debuggerTime: ✅ 1.870ms (SLO: <2.000ms -6.5%) vs baseline: ~same Memory: ✅ 47.860MB (SLO: <49.500MB -3.3%) vs baseline: +4.7% ✅ iast-getTime: ✅ 1.856ms (SLO: <2.000ms -7.2%) vs baseline: ~same Memory: ✅ 44.615MB (SLO: <49.000MB -8.9%) vs baseline: +4.9% ✅ profilerTime: ✅ 1.905ms (SLO: <2.100ms -9.3%) vs baseline: ~same Memory: ✅ 48.842MB (SLO: <50.000MB -2.3%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.353ms (SLO: <3.650ms -8.1%) vs baseline: +0.1% Memory: ✅ 55.488MB (SLO: <56.000MB 🟡 -0.9%) vs baseline: +4.8% ✅ tracerTime: ✅ 3.372ms (SLO: <3.650ms -7.6%) vs baseline: +0.3% Memory: ✅ 55.488MB (SLO: <56.500MB 🟡 -1.8%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 3.375ms (SLO: <3.650ms -7.5%) vs baseline: +0.3% Memory: ✅ 55.485MB (SLO: <60.000MB -7.5%) vs baseline: +4.9% 🟡 flasksqli - 6/6✅ appsec-enabledTime: ✅ 2.058ms (SLO: <4.200ms 📉 -51.0%) vs baseline: ~same Memory: ✅ 55.817MB (SLO: <66.000MB 📉 -15.4%) vs baseline: +5.0% ✅ iast-enabledTime: ✅ 2.069ms (SLO: <2.800ms 📉 -26.1%) vs baseline: ~same Memory: ✅ 55.817MB (SLO: <62.500MB 📉 -10.7%) ✅ tracer-enabledTime: ✅ 2.059ms (SLO: <2.250ms -8.5%) vs baseline: ~same Memory: ✅ 55.817MB (SLO: <56.500MB 🟡 -1.2%) 🟡 httppropagationextract - 60/60✅ all_styles_all_headersTime: ✅ 81.125µs (SLO: <100.000µs 📉 -18.9%) vs baseline: -0.5% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.6% ✅ b3_headersTime: ✅ 14.281µs (SLO: <20.000µs 📉 -28.6%) vs baseline: +0.5% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +5.0% ✅ b3_single_headersTime: ✅ 13.265µs (SLO: <20.000µs 📉 -33.7%) vs baseline: -0.3% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ datadog_tracecontext_tracestate_not_propagated_on_trace_id_no_matchTime: ✅ 64.103µs (SLO: <80.000µs 📉 -19.9%) vs baseline: +0.6% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ datadog_tracecontext_tracestate_propagated_on_trace_id_matchTime: ✅ 66.278µs (SLO: <80.000µs 📉 -17.2%) vs baseline: +0.1% Memory: ✅ 34.878MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ empty_headersTime: ✅ 1.631µs (SLO: <10.000µs 📉 -83.7%) vs baseline: +1.1% Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.7% ✅ full_t_id_datadog_headersTime: ✅ 22.536µs (SLO: <30.000µs 📉 -24.9%) vs baseline: +0.2% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.0% ✅ invalid_priority_headerTime: ✅ 6.596µs (SLO: <10.000µs 📉 -34.0%) vs baseline: +0.5% Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.7% ✅ invalid_span_id_headerTime: ✅ 6.589µs (SLO: <10.000µs 📉 -34.1%) vs baseline: -0.3% Memory: ✅ 34.957MB (SLO: <35.500MB 🟡 -1.5%) vs baseline: +5.3% ✅ invalid_tags_headerTime: ✅ 6.590µs (SLO: <10.000µs 📉 -34.1%) vs baseline: +0.6% Memory: ✅ 34.937MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.3% ✅ invalid_trace_id_headerTime: ✅ 6.592µs (SLO: <10.000µs 📉 -34.1%) vs baseline: +0.9% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.0% ✅ large_header_no_matchesTime: ✅ 27.722µs (SLO: <30.000µs -7.6%) vs baseline: -0.5% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.6% ✅ large_valid_headers_allTime: ✅ 28.740µs (SLO: <40.000µs 📉 -28.2%) vs baseline: -0.5% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +4.9% ✅ medium_header_no_matchesTime: ✅ 9.893µs (SLO: <20.000µs 📉 -50.5%) vs baseline: -0.4% Memory: ✅ 34.996MB (SLO: <35.500MB 🟡 -1.4%) vs baseline: +5.0% ✅ medium_valid_headers_allTime: ✅ 11.381µs (SLO: <20.000µs 📉 -43.1%) vs baseline: +0.3% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +5.3% ✅ none_propagation_styleTime: ✅ 1.731µs (SLO: <10.000µs 📉 -82.7%) vs baseline: +0.2% Memory: ✅ 34.878MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ tracecontext_headersTime: ✅ 34.989µs (SLO: <40.000µs 📉 -12.5%) vs baseline: ~same Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ valid_headers_allTime: ✅ 6.558µs (SLO: <10.000µs 📉 -34.4%) vs baseline: +0.1% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.4% ✅ valid_headers_basicTime: ✅ 6.162µs (SLO: <10.000µs 📉 -38.4%) vs baseline: ~same Memory: ✅ 34.780MB (SLO: <35.500MB -2.0%) vs baseline: +4.7% ✅ wsgi_empty_headersTime: ✅ 1.627µs (SLO: <10.000µs 📉 -83.7%) vs baseline: ~same Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.3% ✅ wsgi_invalid_priority_headerTime: ✅ 6.620µs (SLO: <10.000µs 📉 -33.8%) vs baseline: +0.8% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.4% ✅ wsgi_invalid_span_id_headerTime: ✅ 1.622µs (SLO: <10.000µs 📉 -83.8%) vs baseline: ~same Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.9% ✅ wsgi_invalid_tags_headerTime: ✅ 6.629µs (SLO: <10.000µs 📉 -33.7%) vs baseline: +0.2% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.6% ✅ wsgi_invalid_trace_id_headerTime: ✅ 6.670µs (SLO: <10.000µs 📉 -33.3%) vs baseline: +1.3% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ wsgi_large_header_no_matchesTime: ✅ 28.826µs (SLO: <40.000µs 📉 -27.9%) vs baseline: +0.3% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ wsgi_large_valid_headers_allTime: ✅ 29.848µs (SLO: <40.000µs 📉 -25.4%) vs baseline: ~same Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.7% ✅ wsgi_medium_header_no_matchesTime: ✅ 10.279µs (SLO: <20.000µs 📉 -48.6%) vs baseline: -0.4% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +5.1% ✅ wsgi_medium_valid_headers_allTime: ✅ 11.734µs (SLO: <20.000µs 📉 -41.3%) vs baseline: -0.1% Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.7% ✅ wsgi_valid_headers_allTime: ✅ 6.597µs (SLO: <10.000µs 📉 -34.0%) vs baseline: -0.4% Memory: ✅ 34.898MB (SLO: <35.500MB 🟡 -1.7%) vs baseline: +5.0% ✅ wsgi_valid_headers_basicTime: ✅ 6.193µs (SLO: <10.000µs 📉 -38.1%) vs baseline: ~same Memory: ✅ 34.859MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +4.9% 🟡 httppropagationinject - 16/16✅ ids_onlyTime: ✅ 21.927µs (SLO: <30.000µs 📉 -26.9%) vs baseline: +5.1% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.8% ✅ with_allTime: ✅ 27.626µs (SLO: <40.000µs 📉 -30.9%) vs baseline: -0.1% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.7% ✅ with_dd_originTime: ✅ 24.625µs (SLO: <30.000µs 📉 -17.9%) vs baseline: ~same Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.4% ✅ with_priority_and_originTime: ✅ 24.011µs (SLO: <40.000µs 📉 -40.0%) vs baseline: ~same Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ with_sampling_priorityTime: ✅ 20.863µs (SLO: <30.000µs 📉 -30.5%) vs baseline: +0.2% Memory: ✅ 34.918MB (SLO: <35.500MB 🟡 -1.6%) vs baseline: +5.3% ✅ with_tagsTime: ✅ 25.884µs (SLO: <40.000µs 📉 -35.3%) vs baseline: ~same Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.7% ✅ with_tags_invalidTime: ✅ 27.137µs (SLO: <40.000µs 📉 -32.2%) vs baseline: -0.9% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +5.0% ✅ with_tags_max_sizeTime: ✅ 26.335µs (SLO: <40.000µs 📉 -34.2%) vs baseline: -0.1% Memory: ✅ 34.878MB (SLO: <35.500MB 🟡 -1.8%) vs baseline: +5.1% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 40.110ms (SLO: <47.150ms 📉 -14.9%) vs baseline: -0.5% Memory: ✅ 39.533MB (SLO: <47.000MB 📉 -15.9%) vs baseline: +5.3% ✅ add-metricsTime: ✅ 260.288ms (SLO: <344.800ms 📉 -24.5%) vs baseline: ~same Memory: ✅ 43.791MB (SLO: <47.500MB -7.8%) vs baseline: +4.7% ✅ add-tagsTime: ✅ 316.868ms (SLO: <321.000ms 🟡 -1.3%) vs baseline: -0.9% Memory: ✅ 43.611MB (SLO: <47.500MB -8.2%) vs baseline: +4.6% ✅ get-contextTime: ✅ 80.492ms (SLO: <92.350ms 📉 -12.8%) vs baseline: ~same Memory: ✅ 39.876MB (SLO: <46.500MB 📉 -14.2%) vs baseline: +5.1% ✅ is-recordingTime: ✅ 38.091ms (SLO: <44.500ms 📉 -14.4%) vs baseline: +1.0% Memory: ✅ 39.463MB (SLO: <47.500MB 📉 -16.9%) vs baseline: +5.2% ✅ record-exceptionTime: ✅ 58.965ms (SLO: <67.650ms 📉 -12.8%) vs baseline: -0.3% Memory: ✅ 40.094MB (SLO: <47.000MB 📉 -14.7%) vs baseline: +5.1% ✅ set-statusTime: ✅ 44.186ms (SLO: <50.400ms 📉 -12.3%) vs baseline: +0.5% Memory: ✅ 39.411MB (SLO: <47.000MB 📉 -16.1%) vs baseline: +4.7% ✅ startTime: ✅ 38.208ms (SLO: <43.450ms 📉 -12.1%) vs baseline: +2.4% Memory: ✅ 39.338MB (SLO: <47.000MB 📉 -16.3%) vs baseline: +4.0% ✅ start-finishTime: ✅ 82.781ms (SLO: <88.000ms -5.9%) vs baseline: +0.2% Memory: ✅ 37.336MB (SLO: <46.500MB 📉 -19.7%) vs baseline: +5.1% ✅ start-finish-telemetryTime: ✅ 84.214ms (SLO: <89.000ms -5.4%) vs baseline: +0.3% Memory: ✅ 37.218MB (SLO: <46.500MB 📉 -20.0%) vs baseline: +4.5% ✅ update-nameTime: ✅ 38.868ms (SLO: <45.150ms 📉 -13.9%) vs baseline: ~same Memory: ✅ 39.718MB (SLO: <47.000MB 📉 -15.5%) vs baseline: +4.7% 🟡 packagespackageforrootmodulemapping - 4/4✅ cache_offTime: ✅ 343.731ms (SLO: <354.300ms -3.0%) vs baseline: -0.8% Memory: ✅ 40.824MB (SLO: <41.500MB 🟡 -1.6%) vs baseline: +5.2% ✅ cache_onTime: ✅ 0.381µs (SLO: <10.000µs 📉 -96.2%) vs baseline: -0.4% Memory: ✅ 39.611MB (SLO: <41.000MB -3.4%) vs baseline: +5.3% 🟡 ratelimiter - 12/12✅ defaultsTime: ✅ 2.361µs (SLO: <10.000µs 📉 -76.4%) vs baseline: +0.5% Memory: ✅ 35.114MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +5.2% ✅ high_rate_limitTime: ✅ 2.421µs (SLO: <10.000µs 📉 -75.8%) vs baseline: +0.3% Memory: ✅ 34.996MB (SLO: <35.500MB 🟡 -1.4%) vs baseline: +4.4% ✅ long_windowTime: ✅ 2.356µs (SLO: <10.000µs 📉 -76.4%) vs baseline: +0.2% Memory: ✅ 35.134MB (SLO: <35.500MB 🟡 -1.0%) vs baseline: +5.0% ✅ low_rate_limitTime: ✅ 2.352µs (SLO: <10.000µs 📉 -76.5%) vs baseline: -0.2% Memory: ✅ 35.173MB (SLO: <35.500MB 🟡 -0.9%) vs baseline: +5.3% ✅ no_rate_limitTime: ✅ 0.819µs (SLO: <10.000µs 📉 -91.8%) vs baseline: -2.2% Memory: ✅ 35.095MB (SLO: <35.500MB 🟡 -1.1%) vs baseline: +4.6% ✅ short_windowTime: ✅ 2.490µs (SLO: <10.000µs 📉 -75.1%) vs baseline: +0.3% Memory: ✅ 35.055MB (SLO: <35.500MB 🟡 -1.3%) vs baseline: +4.6% 🟡 recursivecomputation - 8/8✅ deepTime: ✅ 309.271ms (SLO: <320.950ms -3.6%) vs baseline: +0.1% Memory: ✅ 35.999MB (SLO: <36.500MB 🟡 -1.4%) vs baseline: +5.0% ✅ deep-profiledTime: ✅ 327.300ms (SLO: <359.150ms -8.9%) vs baseline: -0.4% Memory: ✅ 39.872MB (SLO: <40.500MB 🟡 -1.6%) vs baseline: +5.1% ✅ mediumTime: ✅ 6.991ms (SLO: <7.400ms -5.5%) vs baseline: +0.2% Memory: ✅ 34.741MB (SLO: <35.500MB -2.1%) vs baseline: +4.7% ✅ shallowTime: ✅ 0.948ms (SLO: <1.050ms -9.7%) vs baseline: +1.2% Memory: ✅ 34.839MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +5.2% 🟡 sethttpmeta - 32/32✅ all-disabledTime: ✅ 10.531µs (SLO: <20.000µs 📉 -47.3%) vs baseline: +0.2% Memory: ✅ 35.409MB (SLO: <36.000MB 🟡 -1.6%) vs baseline: +4.5% ✅ all-enabledTime: ✅ 41.239µs (SLO: <50.000µs 📉 -17.5%) vs baseline: +2.7% Memory: ✅ 35.350MB (SLO: <36.000MB 🟡 -1.8%) vs baseline: +4.9% ✅ collectipvariant_existsTime: ✅ 40.968µs (SLO: <50.000µs 📉 -18.1%) vs baseline: +0.4% Memory: ✅ 35.271MB (SLO: <36.000MB -2.0%) vs baseline: +4.1% ✅ no-collectipvariantTime: ✅ 40.083µs (SLO: <50.000µs 📉 -19.8%) vs baseline: +0.2% Memory: ✅ 35.330MB (SLO: <36.000MB 🟡 -1.9%) vs baseline: +4.7% ✅ no-useragentvariantTime: ✅ 38.920µs (SLO: <50.000µs 📉 -22.2%) vs baseline: +0.3% Memory: ✅ 35.350MB (SLO: <36.000MB 🟡 -1.8%) vs baseline: +4.8% ✅ obfuscation-no-queryTime: ✅ 40.719µs (SLO: <50.000µs 📉 -18.6%) vs baseline: ~same Memory: ✅ 35.370MB (SLO: <36.000MB 🟡 -1.8%) vs baseline: +5.3% ✅ obfuscation-regular-case-explicit-queryTime: ✅ 76.102µs (SLO: <90.000µs 📉 -15.4%) vs baseline: +0.6% Memory: ✅ 35.665MB (SLO: <36.500MB -2.3%) vs baseline: +4.7% ✅ obfuscation-regular-case-implicit-queryTime: ✅ 76.664µs (SLO: <90.000µs 📉 -14.8%) vs baseline: +0.2% Memory: ✅ 35.586MB (SLO: <36.500MB -2.5%) vs baseline: +4.7% ✅ obfuscation-send-querystring-disabledTime: ✅ 154.345µs (SLO: <170.000µs -9.2%) vs baseline: ~same Memory: ✅ 35.783MB (SLO: <36.500MB 🟡 -2.0%) vs baseline: +5.4% ✅ obfuscation-worst-case-explicit-queryTime: ✅ 148.996µs (SLO: <160.000µs -6.9%) vs baseline: +0.3% Memory: ✅ 35.763MB (SLO: <36.500MB -2.0%) vs baseline: +5.0% ✅ obfuscation-worst-case-implicit-queryTime: ✅ 155.152µs (SLO: <170.000µs -8.7%) vs baseline: +0.1% Memory: ✅ 35.724MB (SLO: <36.500MB -2.1%) vs baseline: +5.1% ✅ useragentvariant_exists_1Time: ✅ 39.657µs (SLO: <50.000µs 📉 -20.7%) vs baseline: +0.4% Memory: ✅ 35.527MB (SLO: <36.000MB 🟡 -1.3%) vs baseline: +5.6% ✅ useragentvariant_exists_2Time: ✅ 40.896µs (SLO: <50.000µs 📉 -18.2%) vs baseline: +0.6% Memory: ✅ 35.370MB (SLO: <36.000MB 🟡 -1.8%) vs baseline: +4.7% ✅ useragentvariant_exists_3Time: ✅ 40.290µs (SLO: <50.000µs 📉 -19.4%) vs baseline: +0.3% Memory: ✅ 35.330MB (SLO: <36.000MB 🟡 -1.9%) vs baseline: +4.7% ✅ useragentvariant_not_exists_1Time: ✅ 39.765µs (SLO: <50.000µs 📉 -20.5%) vs baseline: +0.3% Memory: ✅ 35.330MB (SLO: <36.000MB 🟡 -1.9%) vs baseline: +4.9% ✅ useragentvariant_not_exists_2Time: ✅ 39.898µs (SLO: <50.000µs 📉 -20.2%) vs baseline: +0.8% Memory: ✅ 35.429MB (SLO: <36.000MB 🟡 -1.6%) vs baseline: +4.6% 🟡 span - 26/26✅ add-eventTime: ✅ 18.252ms (SLO: <22.500ms 📉 -18.9%) vs baseline: +0.2% Memory: ✅ 36.886MB (SLO: <53.000MB 📉 -30.4%) vs baseline: +4.7% ✅ add-metricsTime: ✅ 88.805ms (SLO: <93.500ms -5.0%) vs baseline: +1.0% Memory: ✅ 41.073MB (SLO: <53.000MB 📉 -22.5%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 142.191ms (SLO: <155.000ms -8.3%) vs baseline: +0.8% Memory: ✅ 41.131MB (SLO: <53.000MB 📉 -22.4%) vs baseline: +4.8% ✅ get-contextTime: ✅ 17.003ms (SLO: <20.500ms 📉 -17.1%) vs baseline: +0.5% Memory: ✅ 36.619MB (SLO: <53.000MB 📉 -30.9%) vs baseline: +4.6% ✅ is-recordingTime: ✅ 17.247ms (SLO: <20.500ms 📉 -15.9%) vs baseline: ~same Memory: ✅ 36.659MB (SLO: <53.000MB 📉 -30.8%) vs baseline: +4.4% ✅ record-exceptionTime: ✅ 36.573ms (SLO: <40.000ms -8.6%) vs baseline: +0.3% Memory: ✅ 37.267MB (SLO: <53.000MB 📉 -29.7%) vs baseline: +5.0% ✅ set-statusTime: ✅ 18.862ms (SLO: <22.000ms 📉 -14.3%) vs baseline: +1.2% Memory: ✅ 36.718MB (SLO: <53.000MB 📉 -30.7%) vs baseline: +4.8% ✅ startTime: ✅ 17.360ms (SLO: <20.500ms 📉 -15.3%) vs baseline: +2.4% Memory: ✅ 36.700MB (SLO: <53.000MB 📉 -30.8%) vs baseline: +4.7% ✅ start-finishTime: ✅ 51.090ms (SLO: <52.500ms -2.7%) vs baseline: -0.5% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.8% ✅ start-finish-telemetryTime: ✅ 52.254ms (SLO: <54.500ms -4.1%) vs baseline: -0.7% Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.9% ✅ start-finish-traceid128Time: ✅ 54.152ms (SLO: <57.000ms -5.0%) vs baseline: -0.4% Memory: ✅ 34.800MB (SLO: <35.500MB 🟡 -2.0%) vs baseline: +4.7% ✅ start-traceid128Time: ✅ 17.341ms (SLO: <22.500ms 📉 -22.9%) vs baseline: +0.6% Memory: ✅ 36.744MB (SLO: <53.000MB 📉 -30.7%) vs baseline: +4.7% ✅ update-nameTime: ✅ 17.357ms (SLO: <22.000ms 📉 -21.1%) vs baseline: -0.2% Memory: ✅ 36.836MB (SLO: <53.000MB 📉 -30.5%) vs baseline: +4.7% 🟡 tracer - 6/6✅ largeTime: ✅ 29.067ms (SLO: <32.950ms 📉 -11.8%) vs baseline: -0.5% Memory: ✅ 35.881MB (SLO: <36.500MB 🟡 -1.7%) vs baseline: +4.6% ✅ mediumTime: ✅ 2.877ms (SLO: <3.200ms 📉 -10.1%) vs baseline: ~same Memory: ✅ 34.760MB (SLO: <35.500MB -2.1%) vs baseline: +4.9% ✅ smallTime: ✅ 331.818µs (SLO: <370.000µs 📉 -10.3%) vs baseline: +1.6% Memory: ✅ 34.819MB (SLO: <35.500MB 🟡 -1.9%) vs baseline: +5.1%
|
5b1529d to
50bef9b
Compare
f6e8a28 to
6b0778f
Compare
6b0778f to
3c46eca
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit about release note, but otherwise lgtm from apm-core-python and apm-python
having the new system test in place before merging would also be good!
| - | | ||
| tracing: Ensures inferred proxy spans for AWS API Gateway HTTP APIs are created when the | ||
| ``x-dd-proxy`` header reports ``aws-httpapi``. | ||
| AAP: Update inferred proxy span tags to ensure that inferred services are discovered by the App and API Protection API Catalog. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| AAP: Update inferred proxy span tags to ensure that inferred services are discovered by the App and API Protection API Catalog. | |
| - | | |
| AAP: Update inferred proxy span tags to ensure that inferred services are discovered by the App and API Protection API Catalog. |
| --- | ||
| features: | ||
| - | | ||
| tracing: Ensures inferred proxy spans for AWS API Gateway HTTP APIs are created when the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like the changes here also change span tags for tracing, but the main one seems to be the inclusion of https:// based on the snapshots. Can that be called out somewhere in the note in case users wonder about the change when they upgrade?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now that I've looked at the resource name change, it might be worth calling out that it can also change depending on the header information received.
| proxy_info = supported_proxies[proxy_context.system_name] | ||
|
|
||
| method = proxy_context.method | ||
| route_or_path = proxy_context.resource_path or proxy_context.path |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: It might be useful to have at least one test that show the difference in resource names when getting these headers
|
|
||
| span = ctx.get_item("inferred_proxy_span") | ||
| assert span is not None | ||
| assert span.name == span_name |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add an assertion for span type and span kind?
wantsui
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wow this was a really great refactor! I left some comments (some of them are nits). Let me know if there are any questions!
Description
Implementation of RFC-1081 on Endpoint Discovery & Correlation from API Gateway Inferred Spans, summary of changes:

Testing
http.urlaws.httpapiRisks
Additional Notes
http.useragenttag is not part of the RFC but is used by the system-tests to link spans to requests. It simplifies the testing of this feature and I don't see any reason why we should avoid including it.