Skip to content

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)

  • (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 IPs over 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 * version for mezos, indexer, block, postgres
  • Final step : provide a grafana dashboard (cf. grafazos for tezos-metrics)

Edited by Corentin Méhat
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information