feat(profiling): add main/worker tags to profiles#17569
feat(profiling): add main/worker tags to profiles#17569KowalskiThomas wants to merge 1 commit intomainfrom
Conversation
f13304e to
e96aa6e
Compare
e96aa6e to
79a5341
Compare
Codeowners resolved as |
Performance SLOsComparing candidate kowalski/feat-profiling-add-main-worker-tags-to-profiles (79a5341) with baseline main (a5ff574) 🟡 Near SLO Breach (5 suites)🟡 djangosimple - 28/28✅ appsecTime: ✅ 19.594ms (SLO: <22.300ms 📉 -12.1%) vs baseline: ~same Memory: ✅ 71.290MB (SLO: <73.500MB -3.0%) vs baseline: +4.8% ✅ exception-replay-enabledTime: ✅ 1.365ms (SLO: <1.450ms -5.8%) vs baseline: -0.6% Memory: ✅ 69.630MB (SLO: <71.500MB -2.6%) vs baseline: +5.0% ✅ iastTime: ✅ 19.598ms (SLO: <22.250ms 📉 -11.9%) vs baseline: -0.3% Memory: ✅ 71.404MB (SLO: <75.000MB -4.8%) vs baseline: +5.0% ✅ profilerTime: ✅ 15.112ms (SLO: <16.550ms -8.7%) vs baseline: -0.4% Memory: ✅ 60.239MB (SLO: <61.000MB 🟡 -1.2%) vs baseline: +4.9% ✅ resource-renamingTime: ✅ 19.519ms (SLO: <21.750ms 📉 -10.3%) vs baseline: -0.3% Memory: ✅ 71.234MB (SLO: <73.500MB -3.1%) vs baseline: +4.8% ✅ span-code-originTime: ✅ 20.192ms (SLO: <28.200ms 📉 -28.4%) vs baseline: +1.5% Memory: ✅ 71.547MB (SLO: <75.000MB -4.6%) vs baseline: +5.2% ✅ tracerTime: ✅ 19.669ms (SLO: <21.750ms -9.6%) vs baseline: +0.2% Memory: ✅ 71.244MB (SLO: <75.000MB -5.0%) vs baseline: +4.7% ✅ tracer-and-profilerTime: ✅ 20.926ms (SLO: <23.500ms 📉 -11.0%) vs baseline: -0.5% Memory: ✅ 73.380MB (SLO: <75.000MB -2.2%) vs baseline: +5.0% ✅ tracer-dont-create-db-spansTime: ✅ 19.719ms (SLO: <21.500ms -8.3%) vs baseline: ~same Memory: ✅ 71.261MB (SLO: <75.000MB -5.0%) vs baseline: +4.7% ✅ tracer-minimalTime: ✅ 17.902ms (SLO: <18.500ms -3.2%) vs baseline: +0.1% Memory: ✅ 71.308MB (SLO: <75.000MB -4.9%) vs baseline: +4.9% ✅ tracer-no-cachesTime: ✅ 18.851ms (SLO: <19.650ms -4.1%) vs baseline: ~same Memory: ✅ 71.327MB (SLO: <75.000MB -4.9%) vs baseline: +5.0% ✅ tracer-no-databasesTime: ✅ 20.595ms (SLO: <21.100ms -2.4%) vs baseline: -0.2% Memory: ✅ 71.293MB (SLO: <75.000MB -4.9%) vs baseline: +4.9% ✅ tracer-no-middlewareTime: ✅ 19.361ms (SLO: <21.500ms -9.9%) vs baseline: ~same Memory: ✅ 71.288MB (SLO: <75.000MB -4.9%) vs baseline: +4.8% ✅ tracer-no-templatesTime: ✅ 20.798ms (SLO: <22.000ms -5.5%) vs baseline: +0.9% Memory: ✅ 71.295MB (SLO: <73.500MB -3.0%) vs baseline: +4.9% 🟡 otelspan - 22/22✅ add-eventTime: ✅ 40.715ms (SLO: <47.150ms 📉 -13.6%) vs baseline: +0.3% Memory: ✅ 41.226MB (SLO: <47.000MB 📉 -12.3%) vs baseline: +4.9% ✅ add-metricsTime: ✅ 235.086ms (SLO: <344.800ms 📉 -31.8%) vs baseline: ~same Memory: ✅ 45.761MB (SLO: <47.500MB -3.7%) vs baseline: +5.3% ✅ add-tagsTime: ✅ 265.549ms (SLO: <330.000ms 📉 -19.5%) vs baseline: +0.7% Memory: ✅ 45.679MB (SLO: <47.500MB -3.8%) vs baseline: +5.0% ✅ get-contextTime: ✅ 83.737ms (SLO: <92.350ms -9.3%) vs baseline: -0.3% Memory: ✅ 41.642MB (SLO: <46.500MB 📉 -10.4%) vs baseline: +5.2% ✅ is-recordingTime: ✅ 38.863ms (SLO: <44.500ms 📉 -12.7%) vs baseline: -0.3% Memory: ✅ 41.162MB (SLO: <47.500MB 📉 -13.3%) vs baseline: +5.1% ✅ record-exceptionTime: ✅ 61.224ms (SLO: <67.650ms -9.5%) vs baseline: +0.3% Memory: ✅ 41.719MB (SLO: <47.000MB 📉 -11.2%) vs baseline: +4.8% ✅ set-statusTime: ✅ 44.891ms (SLO: <50.400ms 📉 -10.9%) vs baseline: +0.2% Memory: ✅ 41.198MB (SLO: <47.000MB 📉 -12.3%) vs baseline: +5.0% ✅ startTime: ✅ 40.214ms (SLO: <44.500ms -9.6%) vs baseline: +3.3% Memory: ✅ 41.134MB (SLO: <47.000MB 📉 -12.5%) vs baseline: +4.9% ✅ start-finishTime: ✅ 89.717ms (SLO: <92.000ms -2.5%) vs baseline: -0.2% Memory: ✅ 38.732MB (SLO: <46.500MB 📉 -16.7%) vs baseline: +4.9% ✅ start-finish-telemetryTime: ✅ 91.501ms (SLO: <93.000ms 🟡 -1.6%) vs baseline: -0.4% Memory: ✅ 38.692MB (SLO: <46.500MB 📉 -16.8%) vs baseline: +4.4% ✅ update-nameTime: ✅ 40.332ms (SLO: <45.150ms 📉 -10.7%) vs baseline: +0.8% Memory: ✅ 41.332MB (SLO: <47.000MB 📉 -12.1%) vs baseline: +5.0% 🟡 recursivecomputation - 8/8✅ deepTime: ✅ 312.103ms (SLO: <320.950ms -2.8%) vs baseline: +0.1% Memory: ✅ 37.316MB (SLO: <38.750MB -3.7%) vs baseline: +4.6% ✅ deep-profiledTime: ✅ 327.731ms (SLO: <359.150ms -8.7%) vs baseline: -0.3% Memory: ✅ 43.765MB (SLO: <46.000MB -4.9%) vs baseline: +5.0% ✅ mediumTime: ✅ 7.334ms (SLO: <7.450ms 🟡 -1.6%) vs baseline: -0.2% Memory: ✅ 36.215MB (SLO: <38.000MB -4.7%) vs baseline: +4.8% ✅ shallowTime: ✅ 1.038ms (SLO: <1.050ms 🟡 -1.2%) vs baseline: +2.1% Memory: ✅ 36.176MB (SLO: <38.000MB -4.8%) vs baseline: +4.7% 🟡 span - 26/26✅ add-eventTime: ✅ 19.652ms (SLO: <22.500ms 📉 -12.7%) vs baseline: +0.8% Memory: ✅ 38.451MB (SLO: <53.000MB 📉 -27.5%) vs baseline: +5.2% ✅ add-metricsTime: ✅ 89.058ms (SLO: <93.500ms -4.8%) vs baseline: +0.3% Memory: ✅ 42.954MB (SLO: <53.000MB 📉 -19.0%) vs baseline: +4.9% ✅ add-tagsTime: ✅ 137.539ms (SLO: <155.000ms 📉 -11.3%) vs baseline: +1.0% Memory: ✅ 42.933MB (SLO: <53.000MB 📉 -19.0%) vs baseline: +4.9% ✅ get-contextTime: ✅ 18.681ms (SLO: <20.500ms -8.9%) vs baseline: +0.2% Memory: ✅ 38.374MB (SLO: <53.000MB 📉 -27.6%) vs baseline: +5.1% ✅ is-recordingTime: ✅ 18.874ms (SLO: <20.500ms -7.9%) vs baseline: -0.2% Memory: ✅ 38.404MB (SLO: <53.000MB 📉 -27.5%) vs baseline: +4.9% ✅ record-exceptionTime: ✅ 38.344ms (SLO: <41.000ms -6.5%) vs baseline: -0.1% Memory: ✅ 38.900MB (SLO: <53.000MB 📉 -26.6%) vs baseline: +5.1% ✅ set-statusTime: ✅ 20.486ms (SLO: <22.000ms -6.9%) vs baseline: ~same Memory: ✅ 38.334MB (SLO: <53.000MB 📉 -27.7%) vs baseline: +4.6% ✅ startTime: ✅ 19.756ms (SLO: <20.500ms -3.6%) vs baseline: +6.0% Memory: ✅ 38.285MB (SLO: <53.000MB 📉 -27.8%) vs baseline: +4.5% ✅ start-finishTime: ✅ 58.272ms (SLO: <58.500ms 🟡 -0.4%) vs baseline: +0.5% Memory: ✅ 36.137MB (SLO: <38.000MB -4.9%) vs baseline: +4.5% ✅ start-finish-telemetryTime: ✅ 59.266ms (SLO: <60.000ms 🟡 -1.2%) vs baseline: ~same Memory: ✅ 36.196MB (SLO: <38.000MB -4.7%) vs baseline: +4.6% ✅ start-finish-traceid128Time: ✅ 60.371ms (SLO: <62.000ms -2.6%) vs baseline: -0.2% Memory: ✅ 36.235MB (SLO: <38.000MB -4.6%) vs baseline: +4.8% ✅ start-traceid128Time: ✅ 18.660ms (SLO: <22.500ms 📉 -17.1%) vs baseline: +0.2% Memory: ✅ 38.415MB (SLO: <53.000MB 📉 -27.5%) vs baseline: +5.0% ✅ update-nameTime: ✅ 19.307ms (SLO: <22.000ms 📉 -12.2%) vs baseline: +0.3% Memory: ✅ 38.425MB (SLO: <53.000MB 📉 -27.5%) vs baseline: +5.0% 🟡 tracer - 6/6✅ largeTime: ✅ 33.025ms (SLO: <33.950ms -2.7%) vs baseline: -0.2% Memory: ✅ 37.847MB (SLO: <39.250MB -3.6%) vs baseline: +4.8% ✅ mediumTime: ✅ 3.326ms (SLO: <3.500ms -5.0%) vs baseline: +0.2% Memory: ✅ 36.235MB (SLO: <38.750MB -6.5%) vs baseline: +4.6% ✅ smallTime: ✅ 386.088µs (SLO: <390.000µs 🟡 -1.0%) vs baseline: +3.7% Memory: ✅ 36.274MB (SLO: <38.750MB -6.4%) vs baseline: +4.9%
|
What does this PR do?
This PR addresses a recent issue we have discussed in the Profiling Meetup where profiles from parent and worker processes are mixed in the flame graphs and there is no way to foolproof-ly set them apart.
By adding a
process_typetag to the profiles, we work around this issue and let the user filter the data to what they are interested it more easily.Note this should work for all fork-based frameworks/servers, but I think in other cases (like Ray's) we may have to find a different implementation as Ray doesn't "just" fork, it forks + replaces the process image. This is a first step though.