DAOBet has a built-in mechanism for collecting system metrics of the blockchain (
It is presented as a plugin that launches the http endpoint for the Prometheus service.
To enable it, add the following lines to config.ini:
"plugin = eosio :: telemetry_plugin" - enables the telemetry plugin
"telemetry-endpoint = <PORT>" - sets the port for starting the http server
"telemetry-uri = <URI>" - sets the URI path for metrics (recommended: / metrics)
"telemetry-threads = <THREADS_AMOUNT>" - sets the number of threads for telemetry (recommended: 2)
Part of the metrics can be obtained through the RPC API.
We recommend the following calls:
/v1/net/connections - information about the current p2p connections. Detailed documentation: peers.
/v1/producer/paused - whether the producer is paused. Detailed documentation: paused
/v1/db_size/get - information about the current state of the state database (size, capacity, etc.). Detailed documentation: get-1.
Part of the on-chain metrics can be assembled using the RPC API nodes. To do this, we recommend using the following calls:
/v1/chain/get_info - allows you to get information about the main parameters of the network. Detailed documentation: https://developers.eos.io/eosio-nodeos/v1.7.0/reference#get_info.
/v1/chain/get_producers - information about registered producers / validators. Detailed documentation: get_producers
/v1/chain/get_table_rows - you can get information from the tables of contracts. The most interesting tables of the eosio contract are from the scope of eosio: global, global2, global3, where the main dynamic parameters of the network are presented. Detailed documentation: get_table_rows.
More detailed metrics and statistics can be obtained from MongoDB with
mongo_db_plugin enabled in the node. A node with the
mongo_db_plugin turned on writes detailed information about transactions, actions, accounts to mongo_db. When the plugin is turned on, the node needs to keep a constant connection with mongoDB, otherwise the node fails. Detailed documentation: mongo_db_pugin.
We do not recommend including
mongo_db_plugin for the producer of the node and for the seed node, as the plug-in noticeably reduces performance
The use of the Prometheus service is recommended for collecting metrics. For visualization, it is best to use the Grafana service.
For metrics from the RPC API and MongoDB, it is necessary to implement additional exporters in Prometheus, because they do not have the ability of exporting to any collectors. We recommend taking the open service as the basis:
it implements the export of the most important on-chain metrics from various sources (MongoDB, RPC API) to prometheus.