Tracking issue filed from PR #54 dashboard review (#283).
Scope
The Grafana dashboard (deploy/grafana/charon.json) omits an RPC-latency panel because backing series do not exist. Add:
charon_rpc_call_duration_seconds (histogram) — labeled by method (eth_call, eth_getBlockByNumber, eth_sendRawTransaction, eth_getLogs) and endpoint_kind (public, private)
charon_rpc_errors_total (counter) — labeled by method and error_kind (timeout, rejected, connection_lost)
charon_rpc_connection_reconnects_total (counter) — labeled by endpoint_kind
Emission sites: wherever an alloy Provider call crosses the network — scanner health reads, executor submit, simulation calls. A middleware or wrapper around the Provider is the cleanest integration point.
Acceptance
- Histograms with sensible default buckets (1ms..30s)
- All public RPC entry points emit duration + error classification
- Dashboard panel added post-merge
References
Tracking issue filed from PR #54 dashboard review (#283).
Scope
The Grafana dashboard (deploy/grafana/charon.json) omits an RPC-latency panel because backing series do not exist. Add:
charon_rpc_call_duration_seconds(histogram) — labeled by method (eth_call, eth_getBlockByNumber, eth_sendRawTransaction, eth_getLogs) and endpoint_kind (public, private)charon_rpc_errors_total(counter) — labeled by method and error_kind (timeout, rejected, connection_lost)charon_rpc_connection_reconnects_total(counter) — labeled by endpoint_kindEmission sites: wherever an alloy Provider call crosses the network — scanner health reads, executor submit, simulation calls. A middleware or wrapper around the Provider is the cleanest integration point.
Acceptance
References