Skip to content

obs(grafana): cache + RPC-reduction dashboard - #181

Merged
0xfandom merged 1 commit into
developfrom
perf/cache-dashboard
May 28, 2026
Merged

obs(grafana): cache + RPC-reduction dashboard#181
0xfandom merged 1 commit into
developfrom
perf/cache-dashboard

Conversation

@0xfandom

Copy link
Copy Markdown
Collaborator

Summary

New Grafana dashboard Aether — RPC Reduction Caches (uid aether-cache) visualises every counter introduced by the pre-warm cache stack (#173 / #174 / #178 / #179). Without it the only way to read the cache wins was curl /metrics | grep.

Auto-loaded via the existing /var/lib/grafana/dashboards bind-mount; the 30-second provisioning poll picks it up without a Grafana restart.

Panels (8)

Row Panel Source metric
Top stats Bytecode hit ratio hits / (hits + rpc_fetches)
Top stats V2 reserves hit ratio hits / (hits + stale + missing)
Top stats RPC calls avoided (5m) increase(bytecode_hits[5m]) + increase(v2_hits[5m])
Top stats Warm pools aether_mempool_prewarm_warm_pools gauge
Time-series Bytecode hits vs RPC fetches per minute rate over both bytecode counters
Time-series V2 hits / stale / missing per minute rate over all three V2 counters
Time-series Mempool refresh latency p50/p95/p99 histogram_quantile over _duration_ms_bucket
Time-series Mempool inject hit / miss per minute mempool_prewarm_inject_total{result=...}

Hit-ratio gauges are thresholded red < 50% < orange < 80% < green so a glance reveals when a cache is failing.

Files Changed

File Change
deploy/docker/grafana/dashboards/cache.json New — 293 lines of dashboard JSON.

Acceptance Criteria

  • JSON parses cleanly (python3 -c 'json.load(...)').
  • Every panel targets job=~"aether-rust|aether-host-rust" so both compose-internal and host-side runs render.
  • No new dashboard provisioning config needed — existing default.yml picks the file up via foldersFromFilesStructure: false.
  • Existing 5 dashboards (overview / mempool / latency / builders / risk) untouched.

Test plan

  • Validate JSON shape locally.
  • Post-merge: refresh Grafana within 30s, open dashboard list, confirm Aether — RPC Reduction Caches listed and panels populate from live /metrics scrape.

Adds 8 panels covering every cache counter shipped in the recent
pre-warm work:

- bytecode cache hit ratio gauge (cumulative)
- v2 reserves cache hit ratio gauge (cumulative)
- RPC calls avoided in the last 5 minutes (headline win metric)
- mempool refresher warm-pool gauge
- bytecode hits vs RPC fetches per minute timeseries
- v2 hits / stale / missing per minute timeseries
- mempool pre-warm refresh latency p50/p95/p99
- mempool pre-warm inject hit / miss per minute

Auto-loaded via the existing /var/lib/grafana/dashboards mount; the
30-second provisioning poll picks it up without a Grafana restart.
@vercel

vercel Bot commented May 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
aether Ready Ready Preview, Comment May 28, 2026 12:05pm
aether-63xv Ready Ready Preview, Comment May 28, 2026 12:05pm

@0xfandom
0xfandom merged commit 6126d2e into develop May 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant