Skip to main content

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.

Fenryx Chain Overview dashboard

One-command setup

git clone https://github.com/fenryxlabs/fenryx
cd fenryx/apps/monitoring
docker-compose up -d
ServiceURLDefault creds
Prometheushttp://<host>:9090(none)
Grafanahttp://<host>:3000admin / fenryx2024

The Prometheus datasource is auto-provisioned and the Fenryx Chain Overview dashboard is auto-loaded on first boot.

Scrape targets

JobTargetPath
fenryxdnode:26667/metrics
fenryxd_evmnode:18545/metrics
node_exporternode:9100/metrics

node_exporter is a separate install — see github.com/prometheus/node_exporter.

Metric reference

MetricTypeDescription
fenryx_latest_block_heightgaugeLast committed block height
fenryx_block_time_secondsgaugeTime between the last two blocks
fenryx_tpsgaugeSmoothed TPS over 1 min
fenryx_transactions_totalcounterTotal txs included since start
fenryx_mempool_pendinggaugePending txs in the mempool
fenryx_active_validatorsgaugeValidators in the active set
fenryx_connected_peersgaugePeers currently connected
fenryx_pool_<name>_sizegaugePer-Omnia-pool size
fenryx_pou_proofs_totalcounterPoU file-storage proofs accepted
fenryx_pc_penalties_totalcounterPerformance-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 render No data until 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

  1. TPS estimate — gauge, green → yellow @ 3k → red @ 6k.
  2. Block height — stat with sparkline area.
  3. Mempool size — timeseries (amber).
  4. Active validators — stat (green).
  5. Block time (s) — timeseries (purple).
  6. 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