Add flag `--metrics` to Erigon or any other process (add `--metrics.addr` if need).

Add hosts to collecting metrics in: `./cmd/prometheus/prometheus.yml`

Run Grafana and Prometheus: `docker compose up -d prometheus grafana` or `make prometheus`

Go to: [localhost:3000](localhost:3000), admin/admin

Env variables:

- `XDG_DATA_HOME` re-defines default prometheus and grafana databases folder.
- `ERIGON_PROMETHEUS_CONFIG` path to custom `prometheus.yml` file. Default is: `./cmd/prometheus/prometheus.yml`
- `ERIGON_GRAFANA_CONFIG` path to custom `grafana.ini file`. Default is: `./cmd/prometheus/grafana.ini`

To add custom Erigon host: copy `./cmd/prometheus/prometheus.yml`, modify, pass new location by:
`ERIGON_PROMETHEUS_CONFIG=/new/location/prometheus.yml docker compose up prometheus grafana`

## For developers

#### How to update dashboards

1. Edit dashboard right in Grafana UI as you need. Save.
2. Go to "Share" -> "Export" -> enable checkbox "Export for sharing externally" -> "View Json" -> Copy json
3. Go to file `./cmd/prometheus/dashboards/erigon.json` and paste json there.
4. Commit and push. Done. 

#### How to add new metrics

See example: `ethdb/object_db.go:dbGetTimer`

For gRPC metrics search in code: `grpc_prometheus.Register`
