MAAS services can provide Prometheus endpoints for collecting performance metrics. These include:
All available metrics are prefixed with
maas_, to make it easier to look them up in Prometheus and Grafana UIs.
Whenever you install the
python3-prometheus-client library, Prometheus endpoints are exposed over HTTP by the
regiond processes under the default
For a snap-based MAAS installation, the libraries already included in the snap so that metrics will be available out of the box.
For a Debian-based MAAS installation, install the library and restart MAAS services as follows:
sudo apt install python3-prometheus-client sudo systemctl restart maas-rackd sudo systemctl restart maas-regiond
MAAS also provides optional stats about resources registered with the MAAS server itself.
After installing the
python3-prometheus-client library as describe above, run the following to enable stats:
maas $PROFILE maas set-config name=prometheus_enabled value=true
/metrics endpoint is available in MAAS services, Prometheus can be configured to scrape metric values from these. You can configure this by adding a stanza like the following to the prometheus configuration:
- job_name: maas static_configs: - targets: - <maas-host1-IP>:5239 # for regiond - <maas-host1-IP>:5249 # for rackd - <maas-host2-IP>:5239 # regiond-only - <maas-host3-IP>:5249 # rackd-only
If the MAAS installation includes multiple nodes, the
targets entries must be adjusted accordingly, to match services deployed on each node.
If you have enabled MAAS stats, you must add an additional Prometheus job to the config:
- job_name: maas metrics_path: /MAAS/metrics static_configs: - targets: - <maas-host-IP>:5240
In case of a multi-host deploy, adding a single IP for any of the MAAS hosts running
regiond will suffice.
The MAAS performance repo repository provides a sample
deploy-stack script that will deploy and configure the stack on LXD containers.
First, you must install juju via:
sudo snap install --classic juju
Then you can run the script from the repo:
To follow the progress of the deployment, run the following:
watch -c juju status --color
Once you deploy everything, the Grafana UI is accessible on port
3000 with the credentials
grafana. The Prometheus UI will be available on port
The repository also provides some sample dashboard covering the most common use cases for graphs. These are available under
grafana/dashboards. You can import them from the Grafana UI or API.