Skip to content

Network Monitoring

Abstract

This subsection describes the monitoring of the entire network behaviour.

Motivation

To detect problems and security risks at an early stage, monitoring of the entire blockchain network is necessary.

Elaboration

Implementing monitoring involves a combination of selecting existing monitoring software and exposing and collecting the necessary metrics.

Monitoring can be implemented in a blackbox approach (by looking at public network metrics and indicators) or in a whitebox approach (by explicitly exposing and sampling metrics inside the node processes).

The following criteria should be considered when monitoring the overall network behaviour (note that these list is, to a certain degree, generic and not blockchain specific):

  • Metrics (e.g. blocks/s, transactions/s, avg. gasPrice)
  • Sample rate
  • Push vs. Pull
  • Form of visualisation
  • Failure detection
  • Anomaly detection
  • Alerting

References to best practices, examples

There are many existing monitoring tools for blockchain networks. The existing metrics and written logs can be used to draw conclusions about the state and behaviour network.

Hyperledger Besu uses the following tools:

Use metrics to monitor node performance

To enable the Prometheus monitoring and alerting service to access Hyperledger Besu metrics, use the --metrics-enabled option. Use Grafana to visualize the collected data. See the sample Besu Grafana dashboard.

Features of Prometeus:

Prometheus's main features are:

* a multi-dimensional data model with time series data identified by metric name and key/value pairs * PromQL, a flexible query language to leverage this dimensionality * no reliance on distributed storage; single server nodes are autonomous * time series collection happens via a pull model over HTTP * pushing time series is supported via an intermediary gateway * targets are discovered via service discovery or static configuration * multiple modes of graphing and dashboarding support

Features of Grafana:

Built-in Prometheus Support

  • Query editor with metric name lookup
  • Templating queries for generic dashboards
  • Alias patterns for short readable series names

Bibliography of selected references

Hyperledger Besu Monitor Metrics


RFC-0821
Authors: David Maas, Kevin Wittek
Status: work in progress
Last modified: 2021-04-19