Monitoring
In this section, we will learn how to use the ash.avalanche.install_monitoring_stack playbook to deploy a monitoring stack for Avalanche nodes and Subnets.
The monitoring stack is comprised of:
For this tutorial, we will use the local inventory provided by the Ansible Avalanche Getting Started repository. See Create a Local Test Network for details.
Always make sure you have the latest version of the collection installed. See Installation and upgrade.
Requirements
The ash.avalanche.install_monitoring_stack playbook installs Prometheus and Grafana through the prometheus.prometheus collection and the cloudalchemy.grafana role.
We can make these available locally with:
ansible-galaxy install -r ansible_collections/ash/avalanche/requirements.yml
Install the monitoring stack
Grafana will be installed on the nodes of the grafana Ansible group and Prometheus on the prometheus Ansible group. In Ansible Avalanche Getting Started, it is the frontend node by default. You can change this by editing the hosts file.
Prometheus Node Exporter will be installed on all nodes in the avalanche_nodes Ansible group.
ansible-playbook ash.avalanche.install_monitoring_stack -i inventories/local
Grafana
Generate the Grafana URL and open it in your browser:
echo "http://$(terraform -chdir=terraform/multipass output -raw frontend_ip):3000"
http://10.117.207.108:3000

The default admin credentials to log in Grafana in the local inventory provided by Ansible Avalanche Getting Started are admin:admin123. You can change it in grafana.yml.
Nodes dashboards
In the local inventory, Grafana is configured to connect with the Prometheus instance and comes with pre-built dashboards (see grafana.yml). The list of available dashboards can be found in the dashboards directory.
Subnet dashboard
If you created Subnet EVM blockchains in the Subnet Creation tutorial, you can configure the Grafana role to install a pre-configured dashboard for them.
To do so, define the grafana_subnets_dashboard_variables variable (in grafana.yml for the local inventory):
grafana_subnets_dashboard_variables:
- text: Subnet EVM
value: 2dEmExGjJT6MouJRr1PqV4PSQEbScDAjKuPtT6pgqYR5xdUuac
selected: true
Then rerun the install_monitoring_stack playbook:
ansible-playbook ash.avalanche.install_monitoring_stack -i inventories/local

If you deployed multiple Subnet EVM blockchains, you can define them all in the grafana_subnets_dashboard_variables variable, Grafana will display a dropdown menu to select the blockchain to display.
Prometheus
Generate the Prometheus URL and open it in your browser:
echo "http://$(terraform -chdir=terraform/multipass output -raw frontend_ip):9090"
http://10.117.207.108:9090

Targets
In the local inventory, Prometheus is configured (see prometheus.yml) to scrape metrics from the Avalanche nodes (endpoint /ext/metrics on port 9650 of AvalancheGo, see documentation for details) and the Prometheus Node Exporter (port 9100 by default).
The ash.avalanche.faucet role is not yet compatible with secured HTTP API endpoints.