Repository navigation
Add Giga fetch/serve and BlockDB prune metrics (CON-438) - #4329
Conversation
Expose why GetBlock/QC/lane-proposal catch-up stalls and how far BlockDB has actually pruned, without changing consensus behavior. Co-authored-by: Cursor <cursoragent@cursor.com>
|
The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4329 +/- ##
==========================================
- Coverage 67.49% 66.39% -1.11%
==========================================
Files 2181 2063 -118
Lines 167844 155883 -11961
==========================================
- Hits 113294 103500 -9794
+ Misses 54540 52373 -2167
Partials 10 10
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
This PR adds metrics only: a BlockDB prune-watermark gauge, updated when the store opens and inside PruneBefore, plus Giga fetch/serve counters whose label sets are fixed and small. Behaviour doesn't change, and I found no correctness issues; the one note is that the new metrics have no tests.
Findings: 0 blocking | 1 non-blocking | 0 posted inline
Blockers
- None at the file/PR level.
Non-blocking
- [suggestion] No tests cover the new metrics. A small test would pin the reason labels and stop them drifting. It could check that
PruneBeforesetsprune_watermarkto the clamped floor, and thatserverGetBlockincrementsserve{block,pruned}andserve{block,not_found}for ErrPruned and ErrNotFound. Any gatherer or registry helper works for reading the values back.
Pin the new label names and watermark gauge on the collector and mesh paths that already exercise those outcomes. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Successfully created backport PR for |
* main: (21 commits) Backport evmonly parse, app-hash and changeset perf fixes from giga-1 (#4345) Remove the oracle module behind a v6.8 upgrade (#4319) fix(seidb): report only the current migration boundary on the snapshot gauge (#4327) fix(flatkv): keep 10 old checkpoints instead of mirroring memIAVL's count (#4322) Backport Autobahn execute-loop and produced-tx metrics from giga-1 (#4330) Add giga.storage.receipts to toggle the Autobahn receipt store (#4333) optimize gather phase (#4326) Regenerate the Unreleased changelog as a plain PR list (#4336) Bump sei-protocol/go-ethereum to v1.15.7-sei-21 (#4332) Fail dynamic-gas precompile out-of-gas as an EVM out-of-gas call (#4318) Add dashboard and topology option for Autobahn e2e (#4167) Add Giga fetch/serve and BlockDB prune metrics (#4329) Add eth_getLogs to the EVM-only Giga RPC (#4308) Generate v6.8 precompiles (#4320) Add [giga] app.toml section and honor it on the Autobahn node (#4323) feat(evmonly): add eth_estimateGas via existing libraries (#4325) Use Pebble batch directly in SS (#4300) Fix pruning issue in SS causing huge disk spike (#4321) Make Autobahn always run the EVM-only executor, disable/remove some integration tests (#4316) reduce seal lock contention (#4314) ...
Summary
tendermint_autobahn_blockstore_prune_watermarkat the BlockDB prune choke point (actual floor after clamp, seeded on open).tendermint_p2p_giga_fetch{resource,reason}for GetBlock, FullCommitQC, AppQC, CommitQC, and lane-proposal client paths (ok,unavailable,open_stream,send,receive,decode,process,wrong_lane).tendermint_p2p_giga_serve{resource,reason}on GetBlock empty/error replies (pruned,not_found,store_error) so a lagging node'sunavailablecan be joined with a tip node'spruned.Test plan
GOWORK=off go test --count=0 ./sei-tendermint/autobahn/blockstore ./sei-tendermint/internal/p2p/giga ./sei-tendermint/internal/autobahn/datascripts/ramtest.sh ./sei-tendermint/autobahn/blockstore/... ./sei-tendermint/internal/p2p/giga/... ./sei-tendermint/internal/autobahn/data/...prune_watermark,fetch, andserveseries appear; compare a lagging node'sfetch{resource="block",reason="unavailable"}with a tip node'sserve{resource="block",reason="pruned"}andnext_block{stage="receive"}.Made with Cursor