docs: document missing metrics and fix gean repo link#397
Conversation
The metrics doc had drifted from the implementation. Add the 11 metrics
that were implemented but undocumented and reconcile the doc with the
pinned leanMetrics spec:
- New Block Production Metrics section (block_aggregated_payloads,
block_building_{time,payload_aggregation_time}_seconds,
block_building_{success,failures}_total)
- lean_node_sync_status (Fork-Choice), lean_gossip_mesh_peers (Network)
- spec's lean_justified_slot / lean_finalized_slot listed as unsupported
(ethlambda only emits the latest_* variants)
- Custom (non-leanMetrics) Storage and Attestation Aggregate Coverage
subsections for lean_table_bytes and the coverage gauges
Also flag the reserved per-subnet coverage breakdown with a TODO in
coverage.rs, and fix the stale gean repository URL in introduction.md
(devlongs/gean -> geanlabs/gean).
🤖 Kimi Code ReviewOverall Assessment: Low-risk documentation PR with minor inconsistencies. No consensus-critical code changes. Specific Feedback1. Documentation Consistency (metrics.md)Issue: Inconsistent table schemas. The "State Transition" table includes a "Supported" column (✅/❌), but the new "Block Production", "Storage", and "Attestation Aggregate Coverage" sections omit this column. Recommendation: Standardize all metric tables. Either:
File: 2. Ambiguous Metric Definitions (metrics.md)Issue: The distinction between Recommendation: Either:
File: 3. Histogram Bucket Range (metrics.md)Issue: Recommendation: Verify this is sufficient for the minimalist client scope. Consider adding a 2s or +Inf bucket to avoid clipping slow observations. File: 4. Terminology Precision (metrics.md)Issue: Recommendation: Change description to: "Failed block builds (error/panic in File: 5. TODO Comment (coverage.rs)Issue: The TODO comment (line 59) mentions future per-subnet breakdown work but lacks issue tracking. Recommendation: Link to a GitHub issue or internal ticket ID to prevent this from becoming orphaned technical debt. File: 6. URL Update Verification (introduction.md)Acknowledgment: The gean repository URL update ( File: Consensus/Security Notes
Nitpicks
Verdict: Approve after addressing the "Supported" column inconsistency and clarifying the justified/finalized slot metric distinction. Automated review by Kimi (Moonshot AI) · kimi-k2.5 · custom prompt |
🤖 Codex Code Review
No consensus, fork-choice, attestation-validation, SSZ, or memory-safety concerns showed up in the Rust change itself; the only code delta is a TODO comment in crates/blockchain/src/coverage.rs. Automated review by OpenAI Codex · gpt-5.4 · custom prompt |
🤖 Claude Code ReviewNow I have everything I need to write the review. PR #397 Review: docs: document missing metrics and fix gean repo linkOverall: Docs-only PR. Changes are accurate and well-organized. One pre-existing documentation drift was missed during the stated "verified existing rows" pass. Accuracy verificationAll new metric entries verified against the implementation: Block Production Metrics (all new):
Fork-Choice: State Transition: Network: Custom subsections (Storage, Attestation Aggregate Coverage):
Pre-existing drift missed during verification
vec![0.05, 0.1, 0.25, 0.5, 0.75, 1.0, 2.0, 3.0, 4.0]The documented buckets are an order of magnitude smaller than the implementation and are missing the 2, 3, 4 second tail. This is a pre-existing error not introduced here, but the PR's drift verification pass (which checked
|
|
Greptile encountered an error while reviewing this PR. Please reach out to support@greptile.com for assistance. |
Address automated review feedback (Codex/Claude/Kimi): - block_building_failures_total: broaden description; it also counts block-root signing and local process_block failures, not just build - table_bytes: updated after each processed block (not every slot); it retains its previous value on empty slots - attestation aggregate coverage: emission is gated by source data, so document the per-section timing instead of claiming "each slot" - committee_signatures_aggregation_time_seconds: fix pre-existing bucket drift (doc listed 0.005..1; impl is 0.05,0.1,0.25,0.5,0.75,1,2,3,4)
Summary
Reconciles
docs/metrics.mdwith the implementation and the pinned leanMetrics spec. 11 implemented metrics were undocumented; 2 spec metrics ethlambda doesn't implement were missing entirely.Metrics doc changes
lean_block_aggregated_payloads,lean_block_building_payload_aggregation_time_seconds,lean_block_building_time_seconds,lean_block_building_success_total,lean_block_building_failures_totallean_node_sync_status(status=idle,syncing,synced)lean_gossip_mesh_peers(clientlabel)lean_justified_slot/lean_finalized_slotadded as unsupported (ethlambda only emits thelatest_*variants)lean_table_bytes) and Attestation Aggregate Coverage subsection (lean_attestation_aggregate_coverage_validators/_subnets/_diff_validators)Verified existing rows for drift:
finalizations_total,node_info, and reqrespprotocollabels all match the code.Other
coverage.rs:TODOflagging the reserved-but-unpopulated per-subnet (subnet_N) breakdown, matching the note in the docintroduction.md: fix stale gean repo URL (devlongs/gean->geanlabs/gean), consistent with the CLAUDE.md fix in docs: fix gean repository URL in CLAUDE.md #393Test plan
Docs + one comment change only; no code behavior affected.