chore(pipeline-perf): add container CPU-seconds metric#3515
Draft
cijothomas wants to merge 1 commit into
Draft
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3515 +/- ##
==========================================
+ Coverage 86.25% 86.51% +0.25%
==========================================
Files 767 782 +15
Lines 302274 313105 +10831
==========================================
+ Hits 260729 270876 +10147
- Misses 41021 41705 +684
Partials 524 524
🚀 New features to boost your workflow:
|
Record a cumulative container.cpu.time gauge from cgroup CPU accounting (docker stats total_usage) and surface per-window cpu_seconds in the report. Unlike container.cpu.usage (an instantaneous, wall-clock-normalized utilization ratio), cpu_seconds is an absolute work measure integrated over the observation window. In a rate-limited test it is a clean, stable regression signal, and it needs no perf/PMU so it is available on GitHub-hosted runners as well as dedicated hardware. Validated on the dedicated runner: run-to-run CoV 0.04-0.19%.
cijothomas
force-pushed
the
perf/cpu-time-per-log
branch
from
July 18, 2026 07:14
8c2e99d to
17009b2
Compare
Pull request dashboard statusStatus last refreshed: 2026-07-22 19:57:43 UTC.
This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a cgroup-based CPU-seconds metric to the pipeline-perf report:
cpu_seconds— the CPU time a component consumes during the observation window,derived from a new cumulative
container.cpu.timegauge (docker statstotal_usage).Unlike the existing
container.cpu.usage(an instantaneous, wall-clock-normalizedutilization ratio),
cpu_secondsis an absolute work measure integrated overthe observation window. In a rate-limited test, fixed input work => fixed
CPU-seconds, which makes it a clean, stable regression signal. It needs no
perf/PMU, so it is available on GitHub-hosted runners as well as dedicated
hardware.
Changes
docker_component.py): record a cumulativecontainer.cpu.timegauge (seconds) alongside the existingcontainer.cpu.usage.integration_report_logs.yaml): add acomponent_cpu_timetable(
MAX(value) - MIN(value)over the observation window) and emit acpu_secondsrow in
gh_actions_benchmark.Validation
Three label-triggered runs on the dedicated bare-metal runner (full suite).
cpu_secondsrun-to-run CoV (df-engine):All under 0.2% — a solid, low-variance signal for regression detection. Also
verified via a DuckDB dry-run of the report SQL and
python3 tools/sanitycheck.py.Notes / scope
existing
container.cpu.usage/throughput metrics without adding overlappingper-log or hardware-counter columns.
cpu_secondscarries ~1% run-to-run noise (shared-VMfrequency scaling / neighbors), so it is suitable there only as a coarse gate
for large regressions; precise tracking belongs on the dedicated/nightly runs.
Kept as draft.