This subsection describes the monitoring of the entire network behaviour.
To detect problems and security risks at an early stage, monitoring of the entire blockchain network is necessary.
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
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.
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
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
Authors: David Maas, Kevin Wittek
Status: work in progress
Last modified: 2021-04-19