Summary

Тема дорожной карты · Prometheus

Сводка — один из четырёх основных типов метрик Prometheus, предназначенный для измерения наблюдаемых значений, таких как длительность запросов или размеры ответов, аналогично гистограмме, но с квантилями, предварительно вычисляемыми на стороне клиента. Метрика-сводка с именем rpc_duration_seconds предоставляет временные ряды для каждого настроенного квантиля (например, rpc_duration_seconds{quantile="0.5"}, rpc_duration_seconds{quantile="0.99"}), а также rpc_duration_seconds_sum и rpc_duration_seconds_count. Поскольку квантили сводки вычисляются в инструментированном приложении, их невозможно точно агрегировать между несколькими экземплярами в PromQL — например, усреднение p99-задержки двух реплик не даёт значимого глобального p99. Это ограничение делает гистограммы в целом предпочтительнее сводок в распределённых системах, где Prometheus опрашивает несколько экземпляров одного сервиса. Сводки остаются полезными для метрик одного экземпляра, где предпочтительнее клиентское вычисление и не требуется агрегация между экземплярами.

Как это работает

Summary: временной ряд уникально идентифицируется metric_name{label1="value1", label2="value2"}. Samples — float64 + timestamp. Четыре типа метрик: Counter (только растёт — http_requests_total), Gauge (растёт/убывает — cpu_usage), Histogram (bucket + sum + count — для распределений latency), Summary (quantiles считаются client-side — менее распространён). Конвенция имён: <namespace>_<subsystem>_<name>_<unit> (например http_request_duration_seconds).

Когда применять

Histogram лучше Summary для latency — histograms агрегируются между репликами; summaries нет. Counter — для того, по чему делаете rate() (счёт событий); Gauge — для текущих значений. Labels выбирайте осторожно — каждая уникальная комбинация = новый временной ряд. Не используйте labels для unbounded-значений (user ID, пути с ID).

Типичные ошибки

Ловушки Summary: labels с unbounded-cardinality (user_id, request_id, полные URL — Prometheus взрывается); имена метрик без единиц (http_request_duration — секунды? мс? всегда включайте суффикс единицы); непоследовательные label-имена между метриками + приложениями (join-ы падают).

Связанные понятия

Полезные ресурсы