You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Local Prometheus + Grafana bundle for benchmarking ENSIndexer throughput.
4
+
5
+
## What's in the box
6
+
7
+
-**Prometheus** on `http://localhost:9090`, scraping `host.docker.internal:42069/metrics` every 5s (6h retention, admin API enabled).
8
+
-**Grafana** on `http://localhost:3001` (anonymous admin, no login) with a pre-provisioned Prometheus datasource and a **Ponder / ensindexer** dashboard.
9
+
10
+
Dashboard panels are tuned for indexer perf work:
11
+
12
+
- Top handlers by share of wall-clock time (`rate(ponder_indexing_function_duration_sum[1m]) / 1000`)
13
+
- Handler p95 duration (top 15)
14
+
- Events/sec per event and total
15
+
- Total events per handler (bar gauge)
16
+
- Synced block + historical blocks/sec per chain
17
+
- RPC req/s + p95 duration per chain/method
18
+
- Node event-loop lag p99, Postgres queue size, DB store queries/sec
19
+
20
+
## Usage
21
+
22
+
From this package's directory:
23
+
24
+
```bash
25
+
pnpm up # start prometheus + grafana
26
+
pnpm down # stop and remove containers
27
+
pnpm logs # tail container logs
28
+
pnpm wipe # purge prometheus series (useful between benchmark runs)
29
+
```
30
+
31
+
Then start the indexer in another terminal (`pnpm -F ensindexer dev`) and open the dashboard at <http://localhost:3001/d/ensindexer>.
32
+
33
+
The scrape target is `host.docker.internal:42069` — on macOS that resolves to the host via the `host-gateway` declaration in the compose file. On Linux hosts you may need Docker 20.10+ for the same behavior.
0 commit comments