Mezos metrics for prometheus
Context
expose a mezos endpoint that exports data in the open-metrics format (compatible with prometheus and most monitoring services).
https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md
Why open-metrics format ?
-
https://openmetrics.io/ _It specifies the de-facto standard for transmitting cloud-native metrics at scale, with support for both text representation and Protocol Buffers. _
-
This is in line with the tezos-metrics project and tezos/tezos!4042 (merged)
-
This is the format expected by
prometheus, standard by the CNCF, and that we already use to scrape all the monitoring data.
References
This seems to be a simple but quite complete explanation : https://sysdig.com/blog/prometheus-metrics/#prometheusmetricsopenmetricsformat
Metrics list to be implemented :
-
chain info from connected node and indexer/db :
head_block_node,head_block_indexer_token,head_block_indexer_mempool=> deprecate the/info,/monitor/*. etc in favor of open-api format -
industry example that could serve as inspiration : https://github.com/nginxinc/nginx-prometheus-exporter
-
(exact metrics to be decided) : errors and success (for each mezos instance)
-
API hits- Success rate
- Failure rate
- ... and every metrics that would be needed to reproduce https://api.umamiwallet.com/goaccess data.
-
-
❌ (with the LB in front, this will not make sense since we don't want to reveal each IP in this monitoring data endpoint)Unique IPsover time (per week,per hour,per minute, ...) minimal labels :{tezos-net, hostname, env}- IP geographic locations by time by country (to be used with https://grafana.com/gra *
versionfor mezos, indexer, block, postgres
- IP geographic locations by time by country (to be used with https://grafana.com/gra *
-
Final step : provide a grafana dashboard (cf. grafazos for tezos-metrics)