execution/commitment: commitment metrics as counters, round duration and branch IO bytes - #23589
Queued
awskii wants to merge 6 commits into
Queued
execution/commitment: commitment metrics as counters, round duration and branch IO bytes#23589awskii wants to merge 6 commits into
awskii wants to merge 6 commits into
Conversation
…gine so commit_* metrics stop reading zero
…nd histogram and branch IO bytes
awskii
marked this pull request as draft
August 26, 2026 10:53
…trie, and port the dashboards
… ported dashboard queries
…ready billed at the write site
…rics-redesign # Conflicts: # execution/commitment/metrics.go # execution/commitment/parallel_metrics_test.go # execution/commitment/parallel_mount.go # execution/commitment/parallel_patricia_hashed.go
awskii
marked this pull request as ready for review
August 26, 2026 16:29
AskAlexSharov
approved these changes
Aug 27, 2026
AskAlexSharov
added this pull request to the merge queue
Aug 27, 2026
Any commits made after this event will not be merged.
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Aug 27, 2026
AskAlexSharov
added this pull request to the merge queue
Aug 27, 2026
Any commits made after this event will not be merged.
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 #23588 — review that one first. With the metrics reconnected, this replaces the shape they report in: counters and a histogram instead of gauges holding a rate that was already divided by the log interval. A pre-divided gauge fixes the averaging window at the writer, cannot be re-aggregated across instances, and turns a missed scrape into a lost interval rather than a lost sample.
rate()belongs in the query.Changes
commit_*gauges.commitment_blocks_total,commitment_txns_total,commitment_keys_total,commitment_folds_total,commitment_unfolds_total,commitment_branch_writes_total,commitment_branch_read_bytes_total,commitment_branch_write_bytes_total; with akindlabel,commitment_key_traversals_total{address|storage},commitment_reads_total{account|storage|branch},commitment_cache_hits_totalandcommitment_cache_misses_total.commitment_round_duration_secondshistogram pluscommitment_rounds_total, observed once perProcesson both engines. Buckets run 1ms to 60s, spanning a fast incremental block through a whale fold.unfoldBranchNode, writes at bothBranchEncodersites and at the deferred apply.DeferredBranchUpdate.encodedis filled by the merge insideApplyDeferredBranchUpdates, so the deferred bytes are summed after it returns, not before.Progress.prevCommitment*were read to compute deltas but never rolled forward, so every emission re-sent the cumulative total as if it were the interval's increment. They advance now.Notes
commitment_keys_totalcounts distinct keys handed to the trie (updates.Size());commitment_key_traversals_totalcounts cell visits. They are different numbers on the parallel engine, which re-walks subtrees on mount+replay: 320 traversals against 80 distinct keys on a 16-account fixture. One counter for both would not be comparable between the two engines, which is why the split exists.RoundKeysis deliberately not merged between tries — the engine that ran the round owns that number, while a mount worker only sees its own subtree. Merging it multiplied the count by the worker fan-out, giving 320 at four workers for the same 80 keys.