Repository navigation
fix(tracing): prevent quadratic query string obfuscation [backport 3.19] - #20880
Conversation
|
|
🎉 All green!🧪 All tests passed 🔄 Datadog retried 2 tests - 1 passed on retry 🚧 29 tests that failed were ignored due to quarantine 🔗 Commit SHA: b0fc22d | Docs | View more details | Give us feedback! |
Update composite Actions with SHA-pinned dependencies and keep the wheel matrix generator aligned. Remove unused Cython declarations, correct spelling errors, and run the configured script doctests from lint checks.
Performance SLOsComparing candidate florentin.labelle/backport-20857-to-3.19 (b0fc22d) with baseline 3.19 (8e480ab) 📈 Performance Regressions (2 suites)📈 iastaspectsospath - 12/12✅ ospathbasename_aspectTime: ✅ 4.404µs (SLO: <10.000µs 📉 -56.0%) vs baseline: +3.9% ✅ ospathbasename_noaspectTime: ✅ 1.112µs (SLO: <10.000µs 📉 -88.9%) vs baseline: +1.0% ✅ ospathjoin_aspectTime: ✅ 6.351µs (SLO: <10.000µs 📉 -36.5%) vs baseline: +2.7% ✅ ospathjoin_noaspectTime: ✅ 2.282µs (SLO: <10.000µs 📉 -77.2%) vs baseline: ~same ✅ ospathnormcase_aspectTime: ✅ 3.888µs (SLO: <10.000µs 📉 -61.1%) vs baseline: 📈 +11.0% ✅ ospathnormcase_noaspectTime: ✅ 0.618µs (SLO: <10.000µs 📉 -93.8%) vs baseline: +3.1% ✅ ospathsplit_aspectTime: ✅ 4.833µs (SLO: <10.000µs 📉 -51.7%) vs baseline: ~same ✅ ospathsplit_noaspectTime: ✅ 1.613µs (SLO: <10.000µs 📉 -83.9%) vs baseline: +0.8% ✅ ospathsplitdrive_aspectTime: ✅ 3.839µs (SLO: <10.000µs 📉 -61.6%) vs baseline: +4.1% ✅ ospathsplitdrive_noaspectTime: ✅ 0.726µs (SLO: <10.000µs 📉 -92.7%) vs baseline: +0.4% ✅ ospathsplitext_aspectTime: ✅ 4.858µs (SLO: <10.000µs 📉 -51.4%) vs baseline: +5.6% ✅ ospathsplitext_noaspectTime: ✅ 1.425µs (SLO: <10.000µs 📉 -85.7%) vs baseline: -0.7% 📈 sethttpmeta - 16/16✅ all-disabledTime: ✅ 10.640µs (SLO: <20.000µs 📉 -46.8%) vs baseline: -0.6% ✅ all-enabledTime: ✅ 40.610µs (SLO: <50.000µs 📉 -18.8%) vs baseline: -0.3% ✅ collectipvariant_existsTime: ✅ 42.052µs (SLO: <50.000µs 📉 -15.9%) vs baseline: +1.8% ✅ no-collectipvariantTime: ✅ 40.820µs (SLO: <50.000µs 📉 -18.4%) vs baseline: +0.4% ✅ no-useragentvariantTime: ✅ 39.243µs (SLO: <50.000µs 📉 -21.5%) vs baseline: +0.4% ✅ obfuscation-no-queryTime: ✅ 41.330µs (SLO: <50.000µs 📉 -17.3%) vs baseline: +0.6% ✅ obfuscation-regular-case-explicit-queryTime: ✅ 79.202µs (SLO: <90.000µs 📉 -12.0%) vs baseline: +6.7% ✅ obfuscation-regular-case-implicit-queryTime: ✅ 80.231µs (SLO: <90.000µs 📉 -10.9%) vs baseline: +6.7% ✅ obfuscation-send-querystring-disabledTime: ✅ 174.316µs (SLO: <190.000µs -8.3%) vs baseline: 📈 +18.7% ✅ obfuscation-worst-case-explicit-queryTime: ✅ 168.138µs (SLO: <190.000µs 📉 -11.5%) vs baseline: 📈 +18.7% ✅ obfuscation-worst-case-implicit-queryTime: ✅ 173.439µs (SLO: <190.000µs -8.7%) vs baseline: 📈 +17.8% ✅ useragentvariant_exists_1Time: ✅ 40.038µs (SLO: <50.000µs 📉 -19.9%) vs baseline: -0.2% ✅ useragentvariant_exists_2Time: ✅ 41.750µs (SLO: <50.000µs 📉 -16.5%) vs baseline: +1.5% ✅ useragentvariant_exists_3Time: ✅ 40.859µs (SLO: <50.000µs 📉 -18.3%) vs baseline: +0.5% ✅ useragentvariant_not_exists_1Time: ✅ 39.994µs (SLO: <50.000µs 📉 -20.0%) vs baseline: -0.3% ✅ useragentvariant_not_exists_2Time: ✅ 40.195µs (SLO: <50.000µs 📉 -19.6%) vs baseline: +0.5% 🟡 Near SLO Breach (4 suites)🟡 djangosimple - 15/15✅ appsecTime: ✅ 21.260ms (SLO: <22.300ms -4.7%) vs baseline: -0.1% ✅ exception-replay-enabledTime: ✅ 1.327ms (SLO: <1.450ms -8.5%) vs baseline: -0.5% ✅ iastTime: ✅ 21.254ms (SLO: <22.250ms -4.5%) vs baseline: +0.1% ✅ profilerTime: ✅ 15.558ms (SLO: <16.550ms -6.0%) vs baseline: +0.2% ✅ resource-renamingTime: ✅ 21.351ms (SLO: <21.750ms 🟡 -1.8%) vs baseline: ~same ✅ span-code-originTime: ✅ 26.284ms (SLO: <28.200ms -6.8%) vs baseline: +0.1% ✅ tracerTime: ✅ 21.251ms (SLO: <21.750ms -2.3%) vs baseline: -0.2% ✅ tracer-and-profilerTime: ✅ 23.398ms (SLO: <23.500ms 🟡 -0.4%) vs baseline: +0.1% ✅ tracer-dont-create-db-spansTime: ✅ 19.931ms (SLO: <21.500ms -7.3%) vs baseline: -0.1% ✅ tracer-minimalTime: ✅ 17.247ms (SLO: <17.500ms 🟡 -1.4%) vs baseline: ~same ✅ tracer-nativeTime: ✅ 21.287ms (SLO: <21.750ms -2.1%) vs baseline: ~same ✅ tracer-no-cachesTime: ✅ 19.298ms (SLO: <19.650ms 🟡 -1.8%) vs baseline: ~same ✅ tracer-no-databasesTime: ✅ 19.355ms (SLO: <20.100ms -3.7%) vs baseline: ~same ✅ tracer-no-middlewareTime: ✅ 20.886ms (SLO: <21.500ms -2.9%) vs baseline: -0.8% ✅ tracer-no-templatesTime: ✅ 21.138ms (SLO: <22.000ms -3.9%) vs baseline: +0.1% 🟡 otelsdkspan - 12/12✅ add-eventTime: ✅ 38.483ms (SLO: <42.000ms -8.4%) vs baseline: +0.4% ✅ add-linkTime: ✅ 34.403ms (SLO: <38.550ms 📉 -10.8%) vs baseline: -0.1% ✅ add-metricsTime: ✅ 224.951ms (SLO: <232.000ms -3.0%) vs baseline: +0.6% ✅ add-tagsTime: ✅ 217.253ms (SLO: <221.600ms 🟡 -2.0%) vs baseline: +0.4% ✅ get-contextTime: ✅ 27.641ms (SLO: <31.300ms 📉 -11.7%) vs baseline: -0.5% ✅ is-recordingTime: ✅ 27.501ms (SLO: <31.000ms 📉 -11.3%) vs baseline: -1.0% ✅ record-exceptionTime: ✅ 60.584ms (SLO: <65.850ms -8.0%) vs baseline: +0.3% ✅ set-statusTime: ✅ 30.288ms (SLO: <34.150ms 📉 -11.3%) vs baseline: -0.6% ✅ startTime: ✅ 27.511ms (SLO: <30.150ms -8.8%) vs baseline: +0.4% ✅ start-finishTime: ✅ 32.022ms (SLO: <35.350ms -9.4%) vs baseline: -0.4% ✅ start-finish-telemetryTime: ✅ 31.762ms (SLO: <35.450ms 📉 -10.4%) vs baseline: -1.0% ✅ update-nameTime: ✅ 29.470ms (SLO: <33.400ms 📉 -11.8%) vs baseline: -0.4% 🟡 packagespackageforrootmodulemapping - 2/2✅ cache_offTime: ✅ 349.145ms (SLO: <354.300ms 🟡 -1.5%) vs baseline: +0.2% ✅ cache_onTime: ✅ 0.386µs (SLO: <10.000µs 📉 -96.1%) vs baseline: +0.5% 🟡 telemetryaddmetric - 15/15✅ 1-count-metric-1-timesTime: ✅ 4.368µs (SLO: <20.000µs 📉 -78.2%) vs baseline: +4.1% ✅ 1-count-metrics-100-timesTime: ✅ 319.768µs (SLO: <350.000µs -8.6%) vs baseline: -1.4% ✅ 1-distribution-metric-1-timesTime: ✅ 4.607µs (SLO: <20.000µs 📉 -77.0%) vs baseline: +2.1% ✅ 1-distribution-metrics-100-timesTime: ✅ 345.219µs (SLO: <360.000µs -4.1%) vs baseline: +0.9% ✅ 1-gauge-metric-1-timesTime: ✅ 2.273µs (SLO: <20.000µs 📉 -88.6%) vs baseline: -2.0% ✅ 1-gauge-metrics-100-timesTime: ✅ 147.929µs (SLO: <150.000µs 🟡 -1.4%) vs baseline: -1.1% ✅ 1-rate-metric-1-timesTime: ✅ 4.449µs (SLO: <20.000µs 📉 -77.8%) vs baseline: +2.1% ✅ 1-rate-metrics-100-timesTime: ✅ 334.195µs (SLO: <360.000µs -7.2%) vs baseline: -0.4% ✅ 100-count-metrics-100-timesTime: ✅ 33.352ms (SLO: <33.860ms 🟡 -1.5%) vs baseline: +1.3% ✅ 100-distribution-metrics-100-timesTime: ✅ 3.470ms (SLO: <3.590ms -3.3%) vs baseline: +0.3% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.538ms (SLO: <1.550ms 🟡 -0.8%) vs baseline: -1.0% ✅ 100-rate-metrics-100-timesTime: ✅ 3.513ms (SLO: <3.610ms -2.7%) vs baseline: +1.4% ✅ flush-1-metricTime: ✅ 5.841µs (SLO: <20.000µs 📉 -70.8%) vs baseline: -0.5% ✅ flush-100-metricsTime: ✅ 181.377µs (SLO: <250.000µs 📉 -27.4%) vs baseline: -3.0% ✅ flush-1000-metricsTime: ✅ 2.228ms (SLO: <2.500ms 📉 -10.9%) vs baseline: -0.9%
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
Description
Backports #20857 to
3.19, with configuration imports and type comments adapted for this branch. Includes CI Action updates, lint cleanup, proxy exclusions, and the LiteLLM test fix needed to validate the backport. Updates one-pipeline to 1.6.0 for OCI image-size validation, retaining 3.19's publishing flow.Testing
Python 3.8: 413 passed, 1 skipped. LiteLLM on Python 3.9: 151 passed, 10 skipped. Full Linux lint passed. GitLab dry runs passed for branch and release-tag configurations; the OCI size checker passed against the built image and rejected an intentionally smaller limit. All 74 wheel identifiers preserved.
Risks
Same JWT matching behavior and performance changes as #20857. The pipeline update adds a 500 MiB injection footprint gate; new mutable-tag rollout jobs remain disabled. Full CI validates wheel builds and the pipeline upgrade.
Additional Notes
Includes the security release note. IAST query-string synchronization changes do not apply to
3.19.