Visualize with Grafana dashboards (optional)
Choose local or cloud Grafana
You have a choice of running Grafana locally, by including grafana.yml, or in the cloud, with grafana-cloud.yml.
Grafana Cloud Configuration
If you choose Grafana Cloud, you must edit ./alloy/prometheus-write.alloy as well as ./alloy/loki-write.alloy and add your cloud remote write credentials. This can also be used to write to a central Grafana stack of your own, rather than a hosted cloud offering.
- Metrics: Edit
./alloy/prometheus-write.alloy, uncommentprometheus.remote_write.remote_prometheus.receiverin theforward_toarray, and update theremote_prometheusblock with your Grafana Cloud Mimir endpoint and credentials. - Logs: Edit
./alloy/loki-write.alloy, uncommentloki.write.remote_loki.receiverin theforward_toarray, and update theremote_lokiblock with your Grafana Cloud Loki endpoint and credentials. - Traces (Important): The default
./alloy/alloy-logs.alloyis configured to send traces to a localtemposervice. However,grafana-cloud.ymldoes not include a local Tempo container. If left unchanged, Alloy will fail to start with a"no children to pick from"error. You have two options:- Option A (Recommended): Comment out the
tracingandotelcol.exporter.otlp "tempo"blocks in./alloy/alloy-logs.alloyif you only need metrics and logs. - Option B: Update the
otelcol.exporter.otlp "tempo"block to point to your Grafana Cloud Tempo endpoint. Note: Theauthparameter inside theclientblock must be an attribute (auth = otelcol.auth.basic.grafana_cloud.handler), not a block (auth { ... }). Using a block will cause a syntax error.
- Option A (Recommended): Comment out the
grafana-cloud.yml runs a local Alloy but no local Grafana, and enables adding custom Alloy config items. If you want to add additional scrape targets, place these into ./alloy.
Local Grafana dashboards
A baseline set of dashboards has been included.
- Metanull's Prysm Dashboard JSON
- Prysm Dashboard JSON
- Prysm Dashboard JSON for more than 10 validators
- Lighthouse Beacon Dashboard JSON
- Lighthouse Validator Client Dashboard JSON
- Lighthouse Yoldark34 Dashboard JSON
- Nimbus Dashboard JSON
- Teku Dashboard JSON
- Geth Dashboard JSON
- Lodestar Dashboard JSON
- Reth Dashboard JSON
You can additional dashboards from the Grafana repository, for example 11133 as a node exporter dashboard. You can
also import dashboards by their JSON, as you see fit.
Connecting to local Grafana
Connect to https://grafana.yourdomain.com/ (or http://YOURSERVERIP:3000/ if not using the reverse proxy), log in as admin/admin, and set a new password.
If you run Grafana over http without encryption, do not expose the Grafana port to the Internet. You can use SSH tunneling to reach Grafana securely over the Internet.
In order to load other Dashboards, follow these instructions.
- Click on the + icon on the left, choose "Import".
- Copy/paste JSON code from the Raw github page of the Dashboard you chose - click anywhere inside the page, use Ctrl-A to select all and Ctrl-C to copy
- Click "Load"
- If prompted for a data source choose the "prometheus" data source
- Click "Import".
Alerting with Grafana
Grafana supports setting up alerts and sending notifications to email, Slack, Discord, PagerDuty, etc. Some alerts are pre-previsioned.
To receive these alerts, use the alert bell icon on the left-hand side and set up contact points and notification
policies. The pre-provisioned alerts use a severity label. You could for example send medium severity alerts to
email, Discord or Telegram, and critical severity alerts to PagerDuty or OpsGenie.