Repository navigation
benchmarking/analysis: aggregate suspend/resume phase breakdown log r… - #2009
Open
Lucky Abolorunke (Oneimu) wants to merge 4 commits into
Open
Lucky Abolorunke (Oneimu) wants to merge 4 commits into
Lucky Abolorunke (Oneimu) wants to merge 4 commits into
Conversation
Lucky Abolorunke (Oneimu)
force-pushed
the
phase-logs-analysis
branch
from
September 30, 2026 21:23
1fb2d9c to
c90ea8d
Compare
Lucky Abolorunke (Oneimu)
marked this pull request as ready for review
September 30, 2026 22:01
Lucky Abolorunke (Oneimu)
requested review from
Walter Fender (cheftako),
Max Smythe (maxsmythe) and
Haowei Cai (Roy) (roycaihw)
September 30, 2026 22:02
Walter Fender (cheftako)
left a comment
Contributor
There was a problem hiding this comment.
Looks good. 1 suggestion for resilience
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.
benchmarking/analysis: aggregate suspend/resume phase breakdown log records
Why
#1941 makes atelet and ateom-microvm write one structured
Checkpoint timing breakdown/Restore timing breakdownrecord per operation per layer, so thatSuspendActor/ResumeActorlatency can be attributed to the phases inside it. A log line is not a benchmark result, though: something has to get those records off the cluster and turn them into percentiles. Today nothing inbenchmarking/reads node-side logs — the runner keeps its ownlogs.txt/traces.txtand the orchestrator tails the locust job. This PR adds that consumer, so a run can answer "where did the 6 s go?" from data rather than from one anecdote.What
Everything lives under
benchmarking/analysis/; no production code changes, and no new log output — this only reads what the binaries already write.collect_logs.sh— runskubectl logsfor every atelet pod (ate-system) and every worker pod (benchmark-workloads) for the run's window and writes them to--dest, next to the locust artifacts. Two records per lifecycle operation is the entire volume it collects.phase_report.py— parses the records from those dumps (tolerant ofkubectlline prefixes and unrelated lines) and prints:ateom_checkpoint/ateom_restorebucket split further by the ateom rows.unattributedrow for the two checkpoint layers: the total minus what the logged phases account for, counting the three concurrent captures once. It is the time the instrumentation does not yet name.error.typemarker on the record.--csvwritesphase_percentiles.csvfor run-over-run comparison.test_phase_report.py— 10 unittest tests covering parsing of both layers, nanosecond timestamps, prefixed lines, failure exclusion, the residual arithmetic and the waterfall join.README.md— the record shapes, how to collect and aggregate, how to read each section and its concurrency caveats.benchmarking/README.mdgains a short section pointing at it.Scope and follow-ups
Follow-up (#2148): the automated runs will consume this through the locust runner, which reads the pod logs itself before the orchestrator's teardown and appends the percentiles to stats.jsonl — that lands in a separate PR stacked on this one (branch phase-logs-runner; PR link to follow), so this PR stays the tool and its docs.