Monitoring
fenryxd exposes a Prometheus-format /metrics endpoint on both the native
RPC port (26667) and the EVM RPC port (18545). The repo ships a one-command
stack (apps/monitoring/) that scrapes the node and renders a 6-panel Grafana
dashboard.
One-command setup
git clone https://github.com/fenryxlabs/fenryx
cd fenryx/apps/monitoring
docker-compose up -d
| Service | URL | Default creds |
|---|---|---|
| Prometheus | http://<host>:9090 | (none) |
| Grafana | http://<host>:3000 | admin / fenryx2024 |
The Prometheus datasource is auto-provisioned and the Fenryx Chain Overview dashboard is auto-loaded on first boot.
Scrape targets
| Job | Target | Path |
|---|---|---|
fenryxd | node:26667 | /metrics |
fenryxd_evm | node:18545 | /metrics |
node_exporter | node:9100 | /metrics |
node_exporter is a separate install — see
github.com/prometheus/node_exporter.
Metric reference
| Metric | Type | Description |
|---|---|---|
fenryx_latest_block_height | gauge | Last committed block height |
fenryx_block_time_seconds | gauge | Time between the last two blocks |
fenryx_tps | gauge | Smoothed TPS over 1 min |
fenryx_transactions_total | counter | Total txs included since start |
fenryx_mempool_pending | gauge | Pending txs in the mempool |
fenryx_active_validators | gauge | Validators in the active set |
fenryx_connected_peers | gauge | Peers currently connected |
fenryx_pool_<name>_size | gauge | Per-Omnia-pool size |
fenryx_pou_proofs_total | counter | PoU file-storage proofs accepted |
fenryx_pc_penalties_total | counter | Performance-cap penalties applied |
Status note. The metric names above are the conventions used by the dashboard JSON. Some are wired in
fenryxd; the rest are reserved for upcoming releases — the panels renderNo datauntil they ship.
Dashboard JSON
Import manually:
curl -sLO https://raw.githubusercontent.com/fenryxlabs/fenryx/main/apps/monitoring/grafana/fenryx-chain.json
# In Grafana: Dashboards → New → Import → upload JSON, pick Prometheus DS
Panel reference
- TPS estimate — gauge, green → yellow @ 3k → red @ 6k.
- Block height — stat with sparkline area.
- Mempool size — timeseries (amber).
- Active validators — stat (green).
- Block time (s) — timeseries (purple).
- Connected peers — stat with sparkline area.
Hardening
For a public-facing install, put Grafana behind nginx with TLS, rotate the admin password, and disable anonymous auth:
environment:
- GF_SECURITY_ADMIN_PASSWORD=<set in .env>
- GF_USERS_ALLOW_SIGN_UP=false
- GF_AUTH_ANONYMOUS_ENABLED=false