monad-exporter is a lightweight Prometheus exporter that parses Monad BFT (monad-bft) logs in real time and exposes various consensus-related metrics. It is built on top of the log-scanner framework and provides essential monitoring indicators for Monad node operators.
- Real-time log parsing from monad-bft.service via systemd journal
- Extracts consensus-related events (round, timeout(TC), epoch, leader selection, etc.)
- Exposes metrics in Prometheus format (/metrics)
- Built on a modular log-scanner adapter architecture
- golang 1.23.3++
- systemd / journalctl (log source)
- monad-bft.service must output logs to journald
$ cd monad-exporter
$ make install
This produces a binary named monad-exporter.
The -id flag must contain the nodeβs secp256k1 public key (66-character hex).
./monad-exporter -id=<monad node secp pubkey>
Example:
./monad-exporter -id=035e05885785ba73b53634657fd04b12fc3aa737aa17041579a16c968fdbeb1a0f
that's all!
metrics Sample from:
curl localhost:9600/metrics
# HELP monad_exporter_committed_block_height Number of committed block height
# TYPE monad_exporter_committed_block_height gauge
monad_exporter_committed_block_height 5.3136306e+07
# HELP monad_exporter_consensus_round Number of monad-bft consensus round
# TYPE monad_exporter_consensus_round gauge
monad_exporter_consensus_round 5.53879e+07
# HELP monad_exporter_current_epoch Number of current epoch
# TYPE monad_exporter_current_epoch gauge
monad_exporter_current_epoch 1063
# HELP monad_exporter_local_timeout Number of local timeout(TC) issued count
# TYPE monad_exporter_local_timeout counter
monad_exporter_local_timeout{proposer="035e05885785ba73b53634657fd04b12fc3aa737aa17041579a16c968fdbeb1a0f"} 0
# HELP monad_exporter_selected_leader Number of Selected round leader count
# TYPE monad_exporter_selected_leader counter
monad_exporter_selected_leader{proposer="035e05885785ba73b53634657fd04b12fc3aa737aa17041579a16c968fdbeb1a0f"} 0