-
Notifications
You must be signed in to change notification settings - Fork 463
fix(tracer): ensure compatibility with wrapt 2.0 #14959
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?
Conversation
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 240 ± 2 ms. The average import time from base is: 244 ± 3 ms. The import time difference between this PR and base is: -4.3 ± 0.1 ms. Import time breakdownThe following import paths have appeared:
|
…ompat_for_wrapt_2
…ataDog/dd-trace-py into christophe-papazian/compat_for_wrapt_2
Performance SLOsComparing candidate christophe-papazian/compat_for_wrapt_2 (dbbd49a) with baseline main (2c72bca) 🟡 Near SLO Breach (6 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.443ms (SLO: <22.300ms -8.3%) vs baseline: ~same Memory: ✅ 65.605MB (SLO: <67.000MB -2.1%) vs baseline: +5.2% ✅ exception-replay-enabledTime: ✅ 1.342ms (SLO: <1.450ms -7.4%) vs baseline: -0.3% Memory: ✅ 64.651MB (SLO: <67.000MB -3.5%) vs baseline: +4.9% ✅ iastTime: ✅ 20.443ms (SLO: <22.250ms -8.1%) vs baseline: -0.2% Memory: ✅ 65.517MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.303ms (SLO: <16.550ms -7.5%) vs baseline: +0.6% Memory: ✅ 54.060MB (SLO: <54.500MB 🟡 -0.8%) vs baseline: +5.4% ✅ resource-renamingTime: ✅ 20.597ms (SLO: <21.750ms -5.3%) vs baseline: +0.2% Memory: ✅ 65.602MB (SLO: <67.000MB -2.1%) vs baseline: +5.0% ✅ span-code-originTime: ✅ 25.315ms (SLO: <28.200ms 📉 -10.2%) vs baseline: -0.2% Memory: ✅ 67.480MB (SLO: <69.500MB -2.9%) vs baseline: +4.6% ✅ tracerTime: ✅ 20.491ms (SLO: <21.750ms -5.8%) vs baseline: ~same Memory: ✅ 65.537MB (SLO: <67.000MB -2.2%) vs baseline: +5.0% ✅ tracer-and-profilerTime: ✅ 22.156ms (SLO: <23.500ms -5.7%) vs baseline: +0.5% Memory: ✅ 66.935MB (SLO: <67.500MB 🟡 -0.8%) vs baseline: +5.4% ✅ tracer-dont-create-db-spansTime: ✅ 19.324ms (SLO: <21.500ms 📉 -10.1%) vs baseline: +0.2% Memory: ✅ 65.543MB (SLO: <66.000MB 🟡 -0.7%) vs baseline: +4.9% ✅ tracer-minimalTime: ✅ 16.610ms (SLO: <17.500ms -5.1%) vs baseline: +0.2% Memory: ✅ 65.605MB (SLO: <66.000MB 🟡 -0.6%) vs baseline: +5.1% ✅ tracer-nativeTime: ✅ 20.488ms (SLO: <21.750ms -5.8%) vs baseline: +0.1% Memory: ✅ 71.487MB (SLO: <72.500MB 🟡 -1.4%) vs baseline: +5.1% ✅ tracer-no-cachesTime: ✅ 18.471ms (SLO: <19.650ms -6.0%) vs baseline: +0.5% Memory: ✅ 65.507MB (SLO: <67.000MB -2.2%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 18.825ms (SLO: <20.100ms -6.3%) vs baseline: +0.6% Memory: ✅ 65.538MB (SLO: <67.000MB -2.2%) vs baseline: +5.4% ✅ tracer-no-middlewareTime: ✅ 20.252ms (SLO: <21.500ms -5.8%) vs baseline: +0.1% Memory: ✅ 65.512MB (SLO: <67.000MB -2.2%) vs baseline: +5.0% ✅ tracer-no-templatesTime: ✅ 20.320ms (SLO: <22.000ms -7.6%) vs baseline: +0.1% Memory: ✅ 65.545MB (SLO: <67.000MB -2.2%) vs baseline: +4.9% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.050ms (SLO: <19.850ms -9.1%) vs baseline: +0.4% Memory: ✅ 65.235MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.004ms (SLO: <19.400ms -7.2%) vs baseline: ~same Memory: ✅ 65.254MB (SLO: <66.500MB 🟡 -1.9%) vs baseline: +4.9% ✅ tracer-enabledTime: ✅ 18.097ms (SLO: <19.450ms -7.0%) vs baseline: +0.3% Memory: ✅ 65.294MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +5.0% 🟡 errortrackingflasksqli - 6/6✅ errortracking-enabled-allTime: ✅ 2.093ms (SLO: <2.300ms -9.0%) vs baseline: +0.9% Memory: ✅ 52.354MB (SLO: <53.500MB -2.1%) vs baseline: +5.2% ✅ errortracking-enabled-userTime: ✅ 2.071ms (SLO: <2.250ms -7.9%) vs baseline: -0.2% Memory: ✅ 52.443MB (SLO: <53.500MB 🟡 -2.0%) vs baseline: +5.5% ✅ tracer-enabledTime: ✅ 2.071ms (SLO: <2.300ms -9.9%) vs baseline: +0.3% Memory: ✅ 52.256MB (SLO: <53.500MB -2.3%) vs baseline: +5.3% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.595ms (SLO: <4.750ms -3.3%) vs baseline: +0.4% Memory: ✅ 61.971MB (SLO: <65.000MB -4.7%) vs baseline: +4.9% ✅ appsec-postTime: ✅ 6.615ms (SLO: <6.750ms -2.0%) vs baseline: +0.2% Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.8% ✅ appsec-telemetryTime: ✅ 4.594ms (SLO: <4.750ms -3.3%) vs baseline: +0.1% Memory: ✅ 61.991MB (SLO: <65.000MB -4.6%) vs baseline: +4.9% ✅ debuggerTime: ✅ 1.853ms (SLO: <2.000ms -7.3%) vs baseline: ~same Memory: ✅ 45.574MB (SLO: <47.000MB -3.0%) vs baseline: +5.1% ✅ iast-getTime: ✅ 1.854ms (SLO: <2.000ms -7.3%) vs baseline: -0.2% Memory: ✅ 42.428MB (SLO: <49.000MB 📉 -13.4%) vs baseline: +4.9% ✅ profilerTime: ✅ 1.904ms (SLO: <2.100ms -9.3%) vs baseline: -0.2% Memory: ✅ 46.419MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.367ms (SLO: <3.650ms -7.8%) vs baseline: -0.1% Memory: ✅ 52.298MB (SLO: <53.500MB -2.2%) vs baseline: +4.9% ✅ tracerTime: ✅ 3.365ms (SLO: <3.650ms -7.8%) vs baseline: ~same Memory: ✅ 52.239MB (SLO: <53.500MB -2.4%) vs baseline: +4.7% ✅ tracer-nativeTime: ✅ 3.357ms (SLO: <3.650ms -8.0%) vs baseline: -0.3% Memory: ✅ 58.199MB (SLO: <60.000MB -3.0%) vs baseline: +5.0% 🟡 flasksqli - 6/6✅ appsec-enabledTime: ✅ 3.956ms (SLO: <4.200ms -5.8%) vs baseline: +0.2% Memory: ✅ 62.377MB (SLO: <66.000MB -5.5%) vs baseline: +5.1% ✅ iast-enabledTime: ✅ 2.451ms (SLO: <2.800ms 📉 -12.5%) vs baseline: +0.1% Memory: ✅ 58.901MB (SLO: <60.000MB 🟡 -1.8%) vs baseline: +5.3% ✅ tracer-enabledTime: ✅ 2.062ms (SLO: <2.250ms -8.3%) vs baseline: -0.2% Memory: ✅ 52.373MB (SLO: <54.500MB -3.9%) vs baseline: +5.1% 🟡 telemetryaddmetric - 30/30✅ 1-count-metric-1-timesTime: ✅ 3.071µs (SLO: <20.000µs 📉 -84.6%) vs baseline: +3.2% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 1-count-metrics-100-timesTime: ✅ 201.948µs (SLO: <220.000µs -8.2%) vs baseline: -0.4% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ 1-distribution-metric-1-timesTime: ✅ 3.368µs (SLO: <20.000µs 📉 -83.2%) vs baseline: +2.2% Memory: ✅ 32.224MB (SLO: <34.000MB -5.2%) vs baseline: +5.1% ✅ 1-distribution-metrics-100-timesTime: ✅ 214.719µs (SLO: <220.000µs -2.4%) vs baseline: -1.1% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.9% ✅ 1-gauge-metric-1-timesTime: ✅ 2.352µs (SLO: <20.000µs 📉 -88.2%) vs baseline: +7.6% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ 1-gauge-metrics-100-timesTime: ✅ 138.738µs (SLO: <150.000µs -7.5%) vs baseline: +1.0% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9% ✅ 1-rate-metric-1-timesTime: ✅ 3.228µs (SLO: <20.000µs 📉 -83.9%) vs baseline: +5.0% Memory: ✅ 32.224MB (SLO: <34.000MB -5.2%) vs baseline: +5.0% ✅ 1-rate-metrics-100-timesTime: ✅ 217.093µs (SLO: <250.000µs 📉 -13.2%) vs baseline: +0.8% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +5.1% ✅ 100-count-metrics-100-timesTime: ✅ 20.353ms (SLO: <22.000ms -7.5%) vs baseline: -0.5% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 100-distribution-metrics-100-timesTime: ✅ 2.271ms (SLO: <2.300ms 🟡 -1.3%) vs baseline: +0.7% Memory: ✅ 32.106MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ 100-gauge-metrics-100-timesTime: ✅ 1.433ms (SLO: <1.550ms -7.5%) vs baseline: +1.8% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.0% ✅ 100-rate-metrics-100-timesTime: ✅ 2.214ms (SLO: <2.550ms 📉 -13.2%) vs baseline: +0.3% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.8% ✅ flush-1-metricTime: ✅ 4.643µs (SLO: <20.000µs 📉 -76.8%) vs baseline: +4.1% Memory: ✅ 32.185MB (SLO: <34.000MB -5.3%) vs baseline: +4.9% ✅ flush-100-metricsTime: ✅ 174.502µs (SLO: <250.000µs 📉 -30.2%) vs baseline: -0.2% Memory: ✅ 32.165MB (SLO: <34.000MB -5.4%) vs baseline: +5.1% ✅ flush-1000-metricsTime: ✅ 2.118ms (SLO: <2.500ms 📉 -15.3%) vs baseline: -0.5% Memory: ✅ 32.991MB (SLO: <34.500MB -4.4%) vs baseline: +5.2%
|
Description
wrapt 2.0 released in 2025 oct 20 has some breaking changes.
In particular, BaseObjectProxy is now the base class of all object proxy.
Also: typing was introduced in wrapt 2.0, but this is breaking our mypy steps, because it was done too naively. This PR makes the necessary changes to pass this step.
Testing
This is tested with all existing tests and should fix new failures on system tests related to this change.
APPSEC-59731