-
Notifications
You must be signed in to change notification settings - Fork 461
chore(ci-visibility): file level coverage poc #14853
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
also remove workaround
|
Bootstrap import analysisComparison of import times between this PR and base. SummaryThe average import time from this PR is: 251 ± 8 ms. The average import time from base is: 256 ± 9 ms. The import time difference between this PR and base is: -5.1 ± 0.4 ms. Import time breakdownThe following import paths have shrunk:
|
Performance SLOsComparing candidate gnufede/light-coverage-poc-5 (7bc326e) with baseline main (f2e27c3) 📈 Performance Regressions (1 suite)📈 iast_aspects - 40/40✅ re_expand_aspectTime: ✅ 31.932µs (SLO: <40.000µs 📉 -20.2%) vs baseline: -0.5% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.9% ✅ re_expand_noaspectTime: ✅ 28.615µs (SLO: <40.000µs 📉 -28.5%) vs baseline: -0.9% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_findall_aspectTime: ✅ 2.931µs (SLO: <10.000µs 📉 -70.7%) vs baseline: ~same Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_findall_noaspectTime: ✅ 1.415µs (SLO: <10.000µs 📉 -85.9%) vs baseline: +0.3% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_finditer_aspectTime: ✅ 4.658µs (SLO: <10.000µs 📉 -53.4%) vs baseline: +4.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_finditer_noaspectTime: ✅ 1.404µs (SLO: <10.000µs 📉 -86.0%) vs baseline: -1.0% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ re_fullmatch_aspectTime: ✅ 2.969µs (SLO: <10.000µs 📉 -70.3%) vs baseline: 📈 +10.4% Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_fullmatch_noaspectTime: ✅ 1.293µs (SLO: <10.000µs 📉 -87.1%) vs baseline: -0.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_group_aspectTime: ✅ 2.973µs (SLO: <10.000µs 📉 -70.3%) vs baseline: +1.3% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.8% ✅ re_group_noaspectTime: ✅ 1.613µs (SLO: <10.000µs 📉 -83.9%) vs baseline: +0.4% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_groups_aspectTime: ✅ 3.102µs (SLO: <10.000µs 📉 -69.0%) vs baseline: +0.9% Memory: ✅ 37.631MB (SLO: <39.000MB -3.5%) vs baseline: +4.6% ✅ re_groups_noaspectTime: ✅ 1.713µs (SLO: <10.000µs 📉 -82.9%) vs baseline: +1.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_match_aspectTime: ✅ 2.728µs (SLO: <10.000µs 📉 -72.7%) vs baseline: ~same Memory: ✅ 37.690MB (SLO: <39.000MB -3.4%) vs baseline: +4.9% ✅ re_match_noaspectTime: ✅ 1.309µs (SLO: <10.000µs 📉 -86.9%) vs baseline: ~same Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.7% ✅ re_search_aspectTime: ✅ 2.574µs (SLO: <10.000µs 📉 -74.3%) vs baseline: ~same Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.1% ✅ re_search_noaspectTime: ✅ 1.215µs (SLO: <10.000µs 📉 -87.9%) vs baseline: +0.8% Memory: ✅ 37.611MB (SLO: <39.000MB -3.6%) vs baseline: +4.6% ✅ re_sub_aspectTime: ✅ 3.593µs (SLO: <10.000µs 📉 -64.1%) vs baseline: +4.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ re_sub_noaspectTime: ✅ 1.544µs (SLO: <10.000µs 📉 -84.6%) vs baseline: +1.2% Memory: ✅ 37.670MB (SLO: <39.000MB -3.4%) vs baseline: +5.0% ✅ re_subn_aspectTime: ✅ 3.657µs (SLO: <10.000µs 📉 -63.4%) vs baseline: +0.6% Memory: ✅ 37.650MB (SLO: <39.000MB -3.5%) vs baseline: +4.8% ✅ re_subn_noaspectTime: ✅ 1.626µs (SLO: <10.000µs 📉 -83.7%) vs baseline: +0.7% Memory: ✅ 37.709MB (SLO: <39.000MB -3.3%) vs baseline: +5.0% 🟡 Near SLO Breach (6 suites)🟡 djangosimple - 30/30✅ appsecTime: ✅ 20.410ms (SLO: <22.300ms -8.5%) vs baseline: -0.4% Memory: ✅ 65.375MB (SLO: <67.000MB -2.4%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.341ms (SLO: <1.450ms -7.5%) vs baseline: -0.7% Memory: ✅ 64.524MB (SLO: <67.000MB -3.7%) vs baseline: +4.8% ✅ iastTime: ✅ 20.527ms (SLO: <22.250ms -7.7%) vs baseline: +0.3% Memory: ✅ 65.577MB (SLO: <67.000MB -2.1%) vs baseline: +4.9% ✅ profilerTime: ✅ 15.236ms (SLO: <16.550ms -7.9%) vs baseline: -0.2% Memory: ✅ 53.772MB (SLO: <54.500MB 🟡 -1.3%) vs baseline: +5.1% ✅ resource-renamingTime: ✅ 20.490ms (SLO: <21.750ms -5.8%) vs baseline: ~same Memory: ✅ 65.428MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 26.203ms (SLO: <28.200ms -7.1%) vs baseline: -0.1% Memory: ✅ 68.430MB (SLO: <69.500MB 🟡 -1.5%) vs baseline: +6.1% ✅ tracerTime: ✅ 20.424ms (SLO: <21.750ms -6.1%) vs baseline: -0.2% Memory: ✅ 65.433MB (SLO: <67.000MB -2.3%) vs baseline: +4.9% ✅ tracer-and-profilerTime: ✅ 22.078ms (SLO: <23.500ms -6.1%) vs baseline: -0.1% Memory: ✅ 66.647MB (SLO: <67.500MB 🟡 -1.3%) vs baseline: +5.1% ✅ tracer-dont-create-db-spansTime: ✅ 19.331ms (SLO: <21.500ms 📉 -10.1%) vs baseline: ~same Memory: ✅ 65.469MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +4.9% ✅ tracer-minimalTime: ✅ 16.558ms (SLO: <17.500ms -5.4%) vs baseline: -0.3% Memory: ✅ 65.492MB (SLO: <66.000MB 🟡 -0.8%) vs baseline: +5.0% ✅ tracer-nativeTime: ✅ 20.547ms (SLO: <21.750ms -5.5%) vs baseline: +0.1% Memory: ✅ 71.387MB (SLO: <72.500MB 🟡 -1.5%) vs baseline: +4.8% ✅ tracer-no-cachesTime: ✅ 18.431ms (SLO: <19.650ms -6.2%) vs baseline: -0.3% Memory: ✅ 65.445MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-databasesTime: ✅ 18.783ms (SLO: <20.100ms -6.6%) vs baseline: ~same Memory: ✅ 65.268MB (SLO: <67.000MB -2.6%) vs baseline: +4.5% ✅ tracer-no-middlewareTime: ✅ 20.167ms (SLO: <21.500ms -6.2%) vs baseline: ~same Memory: ✅ 65.460MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.223ms (SLO: <22.000ms -8.1%) vs baseline: -0.5% Memory: ✅ 65.458MB (SLO: <67.000MB -2.3%) vs baseline: +4.8% 🟡 errortrackingdjangosimple - 6/6✅ errortracking-enabled-allTime: ✅ 18.375ms (SLO: <19.850ms -7.4%) vs baseline: +1.6% Memory: ✅ 65.195MB (SLO: <66.500MB 🟡 -2.0%) vs baseline: +4.9% ✅ errortracking-enabled-userTime: ✅ 18.036ms (SLO: <19.400ms -7.0%) vs baseline: ~same Memory: ✅ 65.372MB (SLO: <66.500MB 🟡 -1.7%) vs baseline: +5.1% ✅ tracer-enabledTime: ✅ 18.056ms (SLO: <19.450ms -7.2%) vs baseline: -0.2% Memory: ✅ 65.294MB (SLO: <66.500MB 🟡 -1.8%) vs baseline: +4.9% 🟡 flasksimple - 18/18✅ appsec-getTime: ✅ 4.572ms (SLO: <4.750ms -3.8%) vs baseline: ~same Memory: ✅ 62.010MB (SLO: <65.000MB -4.6%) vs baseline: +5.1% ✅ appsec-postTime: ✅ 6.597ms (SLO: <6.750ms -2.3%) vs baseline: +0.3% Memory: ✅ 61.912MB (SLO: <65.000MB -4.8%) vs baseline: +4.6% ✅ appsec-telemetryTime: ✅ 4.573ms (SLO: <4.750ms -3.7%) vs baseline: +0.2% Memory: ✅ 62.030MB (SLO: <65.000MB -4.6%) vs baseline: +5.1% ✅ debuggerTime: ✅ 1.855ms (SLO: <2.000ms -7.3%) vs baseline: ~same Memory: ✅ 45.495MB (SLO: <47.000MB -3.2%) vs baseline: +5.0% ✅ iast-getTime: ✅ 1.860ms (SLO: <2.000ms -7.0%) vs baseline: ~same Memory: ✅ 42.349MB (SLO: <49.000MB 📉 -13.6%) vs baseline: +4.8% ✅ profilerTime: ✅ 1.911ms (SLO: <2.100ms -9.0%) vs baseline: +0.2% Memory: ✅ 46.439MB (SLO: <47.000MB 🟡 -1.2%) vs baseline: +4.8% ✅ resource-renamingTime: ✅ 3.389ms (SLO: <3.650ms -7.1%) vs baseline: +0.3% Memory: ✅ 52.199MB (SLO: <53.500MB -2.4%) vs baseline: +4.8% ✅ tracerTime: ✅ 3.369ms (SLO: <3.650ms -7.7%) vs baseline: +0.3% Memory: ✅ 52.258MB (SLO: <53.500MB -2.3%) vs baseline: +4.9% ✅ tracer-nativeTime: ✅ 3.372ms (SLO: <3.650ms -7.6%) vs baseline: +0.2% Memory: ✅ 58.282MB (SLO: <60.000MB -2.9%) vs baseline: +4.9% 🟡 flasksqli - 6/6✅ appsec-enabledTime: ✅ 3.926ms (SLO: <4.200ms -6.5%) vs baseline: ~same Memory: ✅ 62.285MB (SLO: <66.000MB -5.6%) vs baseline: +4.8% ✅ iast-enabledTime: ✅ 2.461ms (SLO: <2.800ms 📉 -12.1%) vs baseline: ~same Memory: ✅ 58.805MB (SLO: <60.000MB 🟡 -2.0%) vs baseline: +5.1% ✅ tracer-enabledTime: ✅ 2.069ms (SLO: <2.250ms -8.1%) vs baseline: -0.1% Memory: ✅ 52.160MB (SLO: <54.500MB -4.3%) vs baseline: +4.9% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 42.204ms (SLO: <47.150ms 📉 -10.5%) vs baseline: -0.9% Memory: ✅ 44.479MB (SLO: <47.000MB -5.4%) vs baseline: +5.1% ✅ add-metricsTime: ✅ 318.618ms (SLO: <344.800ms -7.6%) vs baseline: +0.8% Memory: ✅ 595.415MB (SLO: <600.000MB 🟡 -0.8%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 288.025ms (SLO: <314.000ms -8.3%) vs baseline: -0.4% Memory: ✅ 595.902MB (SLO: <600.000MB 🟡 -0.7%) vs baseline: +4.7% ✅ get-contextTime: ✅ 81.109ms (SLO: <92.350ms 📉 -12.2%) vs baseline: +1.0% Memory: ✅ 39.921MB (SLO: <46.500MB 📉 -14.1%) vs baseline: +4.9% ✅ is-recordingTime: ✅ 39.138ms (SLO: <44.500ms 📉 -12.0%) vs baseline: +0.9% Memory: ✅ 43.899MB (SLO: <47.500MB -7.6%) vs baseline: +4.8% ✅ record-exceptionTime: ✅ 58.718ms (SLO: <67.650ms 📉 -13.2%) vs baseline: -0.2% Memory: ✅ 40.254MB (SLO: <47.000MB 📉 -14.4%) vs baseline: +4.9% ✅ set-statusTime: ✅ 44.824ms (SLO: <50.400ms 📉 -11.1%) vs baseline: +0.5% Memory: ✅ 43.952MB (SLO: <47.000MB -6.5%) vs baseline: +4.9% ✅ startTime: ✅ 38.271ms (SLO: <43.450ms 📉 -11.9%) vs baseline: +0.3% Memory: ✅ 43.966MB (SLO: <47.000MB -6.5%) vs baseline: +5.0% ✅ start-finishTime: ✅ 82.777ms (SLO: <88.000ms -5.9%) vs baseline: -0.4% Memory: ✅ 34.564MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.8% ✅ start-finish-telemetryTime: ✅ 84.177ms (SLO: <89.000ms -5.4%) vs baseline: -0.3% Memory: ✅ 34.544MB (SLO: <46.500MB 📉 -25.7%) vs baseline: +4.9% ✅ update-nameTime: ✅ 40.365ms (SLO: <45.150ms 📉 -10.6%) vs baseline: +0.5% Memory: ✅ 44.106MB (SLO: <47.000MB -6.2%) vs baseline: +4.6% 🟡 span - 26/26✅ add-eventTime: ✅ 20.481ms (SLO: <22.500ms -9.0%) vs baseline: +0.4% Memory: ✅ 50.355MB (SLO: <53.000MB -5.0%) vs baseline: +4.8% ✅ add-metricsTime: ✅ 90.811ms (SLO: <93.500ms -2.9%) vs baseline: ~same Memory: ✅ 660.799MB (SLO: <961.000MB 📉 -31.2%) vs baseline: +4.8% ✅ add-tagsTime: ✅ 147.754ms (SLO: <155.000ms -4.7%) vs baseline: +0.3% Memory: ✅ 661.929MB (SLO: <962.500MB 📉 -31.2%) vs baseline: +4.9% ✅ get-contextTime: ✅ 19.272ms (SLO: <20.500ms -6.0%) vs baseline: +0.4% Memory: ✅ 49.143MB (SLO: <53.000MB -7.3%) vs baseline: +4.9% ✅ is-recordingTime: ✅ 19.611ms (SLO: <20.500ms -4.3%) vs baseline: +0.1% Memory: ✅ 49.123MB (SLO: <53.000MB -7.3%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 38.597ms (SLO: <40.000ms -3.5%) vs baseline: +1.3% Memory: ✅ 42.765MB (SLO: <53.000MB 📉 -19.3%) vs baseline: +4.8% ✅ set-statusTime: ✅ 21.255ms (SLO: <22.000ms -3.4%) vs baseline: +0.7% Memory: ✅ 49.126MB (SLO: <53.000MB -7.3%) vs baseline: +4.6% ✅ startTime: ✅ 19.111ms (SLO: <20.500ms -6.8%) vs baseline: +0.6% Memory: ✅ 49.234MB (SLO: <53.000MB -7.1%) vs baseline: +5.0% ✅ start-finishTime: ✅ 51.375ms (SLO: <52.500ms -2.1%) vs baseline: ~same Memory: ✅ 32.086MB (SLO: <34.000MB -5.6%) vs baseline: +4.7% ✅ start-finish-telemetryTime: ✅ 52.716ms (SLO: <54.500ms -3.3%) vs baseline: +0.2% Memory: ✅ 32.145MB (SLO: <34.000MB -5.5%) vs baseline: +4.8% ✅ start-finish-traceid128Time: ✅ 54.953ms (SLO: <56.000ms 🟡 -1.9%) vs baseline: +0.5% Memory: ✅ 32.204MB (SLO: <34.000MB -5.3%) vs baseline: +5.3% ✅ start-traceid128Time: ✅ 19.750ms (SLO: <22.500ms 📉 -12.2%) vs baseline: +0.7% Memory: ✅ 49.138MB (SLO: <53.000MB -7.3%) vs baseline: +4.9% ✅ update-nameTime: ✅ 20.130ms (SLO: <22.000ms -8.5%) vs baseline: -0.5% Memory: ✅ 49.773MB (SLO: <53.000MB -6.1%) vs baseline: +4.8%
|
Description
CI Visibility: Add a faster mode for code coverage intended for TIA, that only cares for file paths and not per-line coverage inside them. It works by instrumenting only a few lines of code (the first line in the module (or the one after
RESUME
opcode if Python 3.11+) and the ones containingIMPORT_FROM
andIMPORT_NAME
opcodes.Disabled by default, but can be enabled with the env var
_DD_COVERAGE_FILE_LEVEL=true
.Testing
Tests are adapted so they are run with both modes, for file level mode we don't assert the actual lines inside the tests.
Risks
None