Example using mtail to collect metrics from Chia logs, chia_exporter to collect metrics from the Chia node, with a docker-compose stack to collect data with Prometheus and graph in Grafana.
The mtail program is in mtail/chialog.mtail
. Currently it only collects harvester metrics:
chia_harvester_blocks_total
: cumulative number of block challenges attemptedchia_harvester_plots_total
: current number of plotschia_harvester_plots_eligible
: cumulative number of plots that passed filterchia_harvester_proofs_total
: cumulative number of proofs wonchia_harvester_search_time
: histogram of proof search times
The chia_exporter is used to collect metrics from the Chia node RPC API.
The Grafana dashboard is in grafana/dashboards/Chia.json
. It defines a number
of variables that will be auto-populated from the node metrics; use the
dropdowns to customize to show show the drives, mounts, etc that you're
interested in monitoring.
The docker-compose file will mount the Chia log from
$HOME/.chia/mainnet/log/debug.log
, verify that this location is correct and
set the log level to INFO in the Chia configuration (usually at
$HOME/.chia/mainnet/config/config.yaml
).
Run:
docker-compose up -d
This will do the following:
- Build container image with configuration for mtail from source
- Build container image for chia_exporter from source
- Download node_exporter, prometheus, and grafana images from docker hub
- Run containers in the background, attached to the host network
The grafana service provisions the prometheus datasource and a basic dashboard that displays harvester and node metrics.
Access Grafana at http://localhost:3000 and login with the default admin/admin username and password (you'll be prompted to change the password).
This is not a production-ready deployment; there's no persistence of Prometheus data or the Grafana database, so changes will be lost when the services are recreated. To do that you'd want to bind-mount local paths to the respective data directories; consult each project's documentation for details.