Monitoring with Ethstats
Last edited on January 5, 2023Ethstats is a service that displays real time and historical statistics about individual nodes connected to a network and about the network itself. Individual node statistics include the last received block, block time, propagation time, connected peers, latency etc. Network metrics include the number of nodes, average block times, node geolocation, transaction counts etc.
These statistics are presented to the user in the form of a dashboard served to a web browser. This can be configured using the public Ethstats server for Ethereum mainnet or some public testnets, or using a local copy of Ethstats for private networks. This page will demonstrate how to set up an Ethstats dashboard for private and public networks.
Prerequisites
To follow the instructions on this page the following are required:
- Geth
- Node
- NPM
- Git
Ethstats
Ethstats has three components:
-
a server that consumes data sent to it by each individual node on a network and serves statistics generated from that data.
-
a client that queries a node and sends its data to the server
-
a dashboard that displays the statistics generated by the server
The summary dashboard for Ethereum Mainnet can be viewed at ethstats.dev.
Note that the Ethstats dashboard is not a reliable source of information about the entire Ethereum network because submitting data to the Ethstats server is voluntary and has to be configured by individual nodes. Therefore, many nodes are omitted from the summary statistics.
How to use
To report statistics about the local node to Ethstats, an Ethstats server and Ethstats client both have to be installed alongside Geth. There are several options for installing Ethstats clients and servers, each with detailed installation instructions. They all share the common trait that an Ethstats service is started with a specific URL that can be passed to Geth.
If enabled, Geth spins up a minimal Ethstats reporting daemon that pushes statistics about the local node to the Ethstats server.
To enable this, start Geth with the ethstats flag, passing the Ethstats service (nodename:secret@host:port) URL.
geth <other commands> --ethstats node1:secret:127.0.0.1:9000
The local node will then report to Ethstats, and the statistics will be displayed in a dashboard that can be accessed via the web browser.
Note on WS_secret
The WS_secret parameter is required for connecting to an Ethstats server. For a local network this can be user-defined on startup by providing it as an environment variable. However, for Ethereum mainnet and the public testnets predefined values must be known. Historically these have been made available on Gitter and Skype channels or of a forum, but these are no longer in use. The user will have to track down existing Ethstats users to request the WS_secret.