feat(indexer): JSON-RPC load metrics and Anvil benchmark #306 #454
No reviewers
Labels
No labels
agent:fix_bugfix
agent:fix_conflicts
agent:fix_security
agent:gap_analysis
agent:implement
agent:open_issues
agents
agent:security_audit
agent:verify
area
timecurve
arena
arena-v2
audit
block:feature_review
block:security
bug
contracts
design
devops
docs
documentation
enhancement
epic
feature
frontend
indexer
low priority
megaeth
operations
ops
performance
QA
qa checklist
referrals
removal
security
smart-contracts
tech-debt
testing
time-arena
timecurve
visual-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
code/yieldomega!454
Loading…
Reference in a new issue
No description provided.
Delete branch "local1/306-impl-rpc-benchmark"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
rpc_metricsmodule hooking ingestion, chain-timer, reorg, podium_live, and warbow_score JSON-RPC calls at the shared transport layer.calls_per_min_1m,peak_calls_10s, per-method/caller breakdown) onGET /v1/status(schema 2.11.0).scripts/verify-indexer-rpc-metrics.shandscripts/benchmark-indexer-rpc-anvil.sh(idle / catch-up / active arena scenarios).INV-INDEXER-306-*), operator runbook (docs/indexer/rpc-load-benchmark.md), sample benchmark artifacts, and play-skill crosslink.Test plan
cd indexer && cargo clippy --all-targets -- -D warningscd indexer && cargo testbash scripts/verify-indexer-rpc-metrics.sh— PASS (schema 2.11.0, total_calls>0)BENCHMARK_SCENARIO_SEC=30 bash scripts/benchmark-indexer-rpc-anvil.sh— PASS (artifacts underdocs/indexer/benchmarks/)bash scripts/verify-podium-live-anvil.sh(reviewer — no ingestion contract change expected)Related: #306
mentioned in issue #306
changed the description
changed the description
Stale Security Review comment
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is ON. A cloud agent has been kicked off to fix the reported issue.
Reviewed by Cursor Bugbot for commit
3277fda5b8. Configure here.Chain timer fallback overcounts
Medium Severity
When comma-separated
RPC_URLfallbacks are configured, a failed mid-poll_onceon the first provider still records every RPC attempt, thenpoll_any_providerruns a fullpoll_onceon the next provider and records again. One chain-timer cycle can inflaterpc_metricsversus actual provider load, contradicting the “one logical call, not per fallback retry” rule used elsewhere.Additional Locations (1)
indexer/src/chain_timer.rs#L302-L327Reviewed by Cursor Bugbot for commit
3277fda5b8. Configure here.changed this line in version 2 of the diff
added 1 commit
15b4923c- fix(indexer): count chain-timer RPC fallbacks as one logical call #306Compare with previous version
changed the description
resolved all threads
mentioned in commit
98259e2723Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is ON, but it could not run because the branch was deleted or merged before autofix could start.
Reviewed by Cursor Bugbot for commit
15b4923c38. Configure here.Chain timer block fetch fallback
Medium Severity
poll_onceloads the head block viarpc_first_ok_instrumentedforeth_getBlockByNumber. That helper treatsOk(None)as success and stops, so a primary RPC that returns JSON-RPC null never tries comma-separated fallbacks. Removing the old per-provider poll loop removed the previous recovery path, so multi-URL setups can fail head polls when only a secondary node has the block.Reviewed by Cursor Bugbot for commit
15b4923c38. Configure here.mentioned in issue #307
mentioned in issue #308
mentioned in merge request !488