Monitoring
This page will outline how to monitor an SSV Node using Grafana and Prometheus.
Pre-requisites
Make sure your node is exposing a /metrics
and /health
endpoints. This is done via node configuration, as explained in the Installation guide.
This guide will not go into the details of setting up and running Prometheus or Grafana. For this, we recommend visiting their related documentations:
For Grafana, specifically, Grafana Cloud is a viable solution, especially for beginners.
Prometheus
In a typical setup, where only one SSV node Docker container is running, Prometheus should be configured with a file like this:
And to launch the Prometheus service as a Docker container as well (using the official Docker image, as shown here):
If you used docker compose to run your SSV node — add the following part after the services:
to your docker-compose.yml
file:
Then run docker compose up prometheus
If you are not running Prometheus as a Docker container, but as an executable, change the `targets` in the config file to reflect the correct networking connections. In the case where the SSV Node container is called ssv_node
the targets should look like this:
Use the docker ps
command to verify the name of the SSV Node container.
Grafana monitoring
After successfully configuring a Prometheus service, and adding it as a data source to Grafana (read here for Grafana Cloud), a Grafana dashboard can be created.
You will also need to expose the 9090 TCP port on your firewall, otherwise Grafana won't be able to reach Prometheus.
Alternatively, you can run your Grafana locally, which requires exposing the 3000 TCP port on your firewall
If you used docker compose to run your SSV node — add the following part after the services:
to your docker-compose.yml
file:
Then run docker compose up grafana
Below, an example of two dashboards, respectively monitoring the SSV Node and the performance of an Operator:
It is very important NOT to use each JSON template "as is". They should be used as templates, and apply a few important changes to before importing them in Grafana:
search for the
templating
section and edit the value options for theinstance
variable to reflect the Prometheus service configuration (thetargets
variables in the configuration file, which relate to, the node container names, for example)identify all of the
datasource
object instances in the file as shown below, and change the uuid to the one related to the Prometheus datasource added to Grafana.
Last updated