Comments 4
А в какое агрегатное состояние агрегированы Петрики?
Немного не понял про exemplar.
Как его использовать?
Кто нибудь разобрался? Можете пример привести. Я раза три прочитал и не понял.
Exemplar - это возможность связать метрики, логи и трейсы. Например, это можно сделать на основе trace ID. Пример: у вас есть метрика (Prometheus) количества HTTP-запросов. И к каждому запросу, у которого код ответа 500, вы хотите прикрепить exemplar. За период между скрейпами у вас было 3 запроса с кодом 500. Тогда метрики будут иметь примерно следующий вид:
# HELP http_requests_total Total number of HTTP requests
# TYPE http_requests_total counter
http_requests_total{method="GET", code="500"} 3 # {trace_id="abc123"} 1620300000000
http_requests_total{method="GET", code="500"} 3 # {trace_id="def456"} 1620300005000
http_requests_total{method="GET", code="500"} 3 # {trace_id="ghi789"} 1620300010000
В этом случае при просмотре метрик, например, в Grafana и при правильной настройке всех необходимых data sources, вы сможете сразу из метрик просмотреть соответствующий спан трейсов и логи.
Также важно понимать, что возможности по хранению exemplars ограничены, и неправильно прикреплять их к каждому событию. При этом, логика добавления exemplars остаётся на ответственности разработчика (того, кто генерирует метрики).
Еще, можете почитать, например эту статью: https://vbehar.medium.com/using-prometheus-exemplars-to-jump-from-metrics-to-traces-in-grafana-249e721d4192
CNCF White Paper по observability: инструменты, виды, стратегии и проблемы