Skip to content
You are reading GoQuorum development version documentation and some displayed features may not be available in the stable release. You can switch to stable version using the version box at screen bottom.

Updated on August 17, 2021

Use metrics to monitor node performance

You can configure a GoQuorum node to collect metrics that can be viewed in a visualization tool like Grafana.

This page explains how to configure a GoQuorum node to provide metrics and enable monitoring.

Collect metrics

A GoQuorum node can collect and expose the metrics data in the following formats:

  • ExpVars - The standard Go interface to instrument and expose metrics via HTTP.
  • Prometheus - An alternative to ExpVars, and the preferred option because it allows users to pull or push metrics, and has a consistent metric format across languages.
  • InfluxDB - Metrics can only be pushed to Influx.

Use the geth command line options --metrics, --pprof, --pprof.addr and --pprof.port where applicable, and set the scraper endpoints to the following:

  • In ExpVar format, http://127.0.0.1:6060/debug/metrics
  • In Prometheus format, http://127.0.0.1:6060/debug/metrics/prometheus

Security warning

Do not expose the pprof HTTP endpoint to the public internet. This endpoint can be used to trigger resource intensive operations.

Use --metric.influxdb and associated geth command line options to push metrics data to InfluxDB.

Excerpt of geth command line options

LOGGING AND DEBUGGING OPTIONS:
  --pprof                             Enable the pprof HTTP server
  --pprofaddr value                   pprof HTTP server listening interface (default: "127.0.0.1")
  --pprofport value                   pprof HTTP server listening port (default: 6060)

METRICS AND STATS OPTIONS:
  --metrics                           Enable metrics collection and reporting
  --metrics.expensive                 Enable expensive metrics collection and reporting
  --metrics.influxdb                  Enable metrics export/push to an external InfluxDB database
  --metrics.influxdb.endpoint value   InfluxDB API endpoint to report metrics to (default: "http://localhost:8086")
  --metrics.influxdb.database value   InfluxDB database name to push reported metrics to (default: "geth")
  --metrics.influxdb.username value   Username to authorize access to the database (default: "test")
  --metrics.influxdb.password value   Password to authorize access to the database (default: "test")
  --metrics.influxdb.tags value       Comma-separated InfluxDB tags (key/values) attached to all measurements (default: "host=localhost")

Visualize collected data

You can visualize GoQuorum metrics data with many dashboard tools. For example, you can import the GoQuorum dashboard into your Grafana instance. The GoQuorum Dashboard provides network information such as blocks and transactions per second, CPU usage, and memory usage.

Tip

If using the Quorum Developer Quickstart, the dashboard is pre-installed in the Grafana container, and the example shows how to configure nodes to use Prometheus to send metrics to Grafana.

Grafana system, network and chain infos screenshot

Grafana detailed chain infos screenshot

ConsenSys has acquired Quorum from J.P. Morgan. Please read the FAQ.
Questions or feedback? You can discuss issues and obtain free support on GoQuorum Slack channel.
For paid professional support by ConsenSys, contact us at quorum@consensys.net.