Repository navigation
Record process telemetry for US release builds - #1083
Draft
PavelMakarchuk wants to merge 1 commit into
Draft
PavelMakarchuk wants to merge 1 commit into
PavelMakarchuk wants to merge 1 commit into
Conversation
Every stage event carries CPU and RSS; a 60 s heartbeat keeps a silent stage visibly alive and makes an operating-system kill visible within minutes; target compilation and post-export scoring report batches done of the planned total; failures are classed and timed; the run manifest records the commit, runtime, host and a digest of the command line. All opt-in on StagingTelemetry and turned on by the fiscal-refresh release. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This branch has not been deployed
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.
Stacked on #1082. GitHub retargets it to
mainonce #1082 merges.Why
Staging telemetry says which stage a US build is in, but not how it is running or why it stopped:
runninguntil the dashboard's 6-hour stall rule.Without these, the staging dashboard cannot tell a slow build from a dead one, find the bottleneck, or count failures by kind.
What changes
All of this is opt-in on
StagingTelemetry, and the fiscal-refresh release turns it on. Other callers and the version 1 contract fixtures are byte-identical.record_resources): every stage event and the progress document carryresources, meaning CPU user and system seconds (finished child processes included) plus current and peak RSS. Cores per stage then come from CPU over wall time.heartbeat_seconds, 60 s for the release): a worker refreshesheartbeat_atandresourcesin the progress document. A run that dies without a final event is visible within minutes. Heartbeat uploads go through Keep US staging telemetry on for every build #1082's background uploader.work_progress(), with_WorkCounterin the release): the progress document carrieswork, meaning units done, total, unit and elapsed seconds, so one snapshot gives a rate. Work reports add no events.record_outcome): a failed event recordsfailure_class,failed_duringandelapsed_seconds, and a complete event recordselapsed_seconds. The classes aregate_refused,terminated,interrupted,out_of_memory,refusedanderror.record_identity()): the run manifest records the git commit, runtime versions, platform, CPU count, memory and thread-pool default. It records the command line as option names plus a SHA-256 only, because staging documents are served publicly and argument values are local paths.Testing
test_staging.py,test_us_exact_k_ladder_launcher.py,test_us_fiscal_refresh_builder.pyandtest_publish_guard.pygive 398 passed, 8 skipped.ruff check .andruff format --checkpass.StagingTelemetrythrough a simulated US release, local only with no uploads. The staging dashboard's Build progress tab (Show process telemetry on the build progress tab calibration-diagnostics#198) showed the measured batch rate driving the remaining time, cores and memory per stage, the heartbeat age, the host and commit, and a gate refusal with its class and failure lines.🤖 Generated with Claude Code