Example using mtail to collect metrics from Chia logs, with 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 Grafana dashboard is in grafana/dashboards/Chia.json
. It assumed the
Prometheus datasource is named Prometheus
, that the plotting drive is mounted
at /chia_tmp
and that the farming drives are mounted at /farm*
(if your
setup is different, change the dashboard, not your setup!).
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
):
log_level: INFO
Run:
docker-compose up -d
This will do the following:
- Build container image with configuration for mtail from source
- Download node_exporter, prometheus, and grafana images from docker hub
- Run containers in the background
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.