Eth2 Client Metrics

About the Eth2 Client metrics

Before starting to analyze and study the performance of the Ethereum 2.0 network, we need to collect data about it. As the interaction with the network will be done through the five main clients (Prysm, Lighthouse, Teku, Nimbus and Lodestar), it makes sense to use them to get the data. All these clients expose metrics about their performance, the blockchain, the resources... These metrics can then be used to analyze and study the blockchain.

The reason

Having data about the client resources and the blockchain will give us more hints and information to study the correct performance of the network. Being able to get this data from the main widespread five clients is a must for us, as these are the ones being used by any user who wants to participate in the network. Once we are able to have this information and its historical data, we will be able to compare and study different scenarios, phases and milestones of the network. This will also enable us to know the network better and detect weak points, which could mean proposing new functions or improvements.


The goal

As said, our intention is to have information from the blockchain through the main five clients. For this to happen, the main five clients developers are implementing an API that we can query in order to get this data. The main goal during the current phase is to standardize these APIs in such a way that the same query can be made to any client, and getting the corresponding data from the instance we are querying. This will improve and make collecting the data much easier, as we have agreed on standard queries to the API, which we know should be providing specific data. Standardizing these APIs is vital for us in order to agree on a common framework to make collaboration easier.


Current Progress

We understand that standardizing API requests is a tough work for developers and there is a lot of implementation going on. Therefore, we have initially agreed on 8 metrics and we have proposed a total of 32 standard metrics, which we believe could be very useful to query. Currently, the first 8 agreed metrics are in the progress of being implemented by all main five clients, and they are already starting to work on the other 32.

Advantages

By implementing a common API in all clients we will be able to automate queries and compare data in real-time. Having a common framework will enable everyone to query the information in the same way, thus making it easier to obtain, study, compare and double-check data from one instance with the other.
Interoperability is another important topic nowadays. By standardizing the metrics' API, it is possible to automate and execute the same API request for all five clients.
Apart from the above, if the request is different for each client, it would not only mean more development effort, but also more maintenance effort (maintain each the interoperability with each client separately).
Standardization also pushes towards client diversity. By having a common framework and offering the same capabilities, end users will not be focusing on only one client, but more open to using other less popular clients.
Finally, we should also consider that standardization also makes collaboration easier, moreover in open-source projects.
This will not only help build simple and more maintainable projects, but also encourage other people to participate and integrate with other tools.
All main five clients mentioned above are collaborating to progress in this development