Counter
Тема дорожной карты · Prometheus
Счётчик — это один из четырёх основных типов метрик в Prometheus. Он представляет собой монотонно возрастающее значение, которое только увеличивается, например, общее количество обслуженных HTTP-запросов или возникших ошибок. Счётчики сбрасываются в ноль при перезапуске процесса, поэтому их почти всегда используют вместе с функциями PromQL rate() или increase(), а не запрашивают как сырые значения. Согласно соглашению именования, имена метрик-счётчиков заканчиваются суффиксом _total, например http_requests_total или process_cpu_seconds_total. Тип счётчика идеально подходит для отслеживания событий с течением времени: выражение rate(http_requests_total[5m]) возвращает среднюю частоту запросов в секунду за пятиминутное окно. При использовании клиентских библиотек Prometheus, счётчики предоставляют метод Inc() для инкремента на единицу и метод Add(v) для добавления положительного значения.
Как это работает
Счётчик представляет собой временной ряд, уникально идентифицируемый по шаблону metric_name{label1="value1", label2="value2"}. Значения образцов включают float64 и метку времени. В Prometheus существует четыре типа метрик: Counter (только растёт, например http_requests_total), Gauge (может расти или убывать, например cpu_usage), Histogram (для распределений latency, содержит бакеты, сумму и количество), и Summary (распределения latency с вычислением квантилей на стороне клиента, менее распространён). Конвенция именования метрик выглядит следующим образом: <namespace>_<subsystem>_<name>_<unit>, например http_request_duration_seconds.
Когда применять
Счётчики используются для отслеживания событий, таких как количество запросов или ошибок, которые можно анализировать с помощью функций PromQL, таких как rate() и increase(). Если вам нужно отслеживать распределение задержек, лучше использовать Histogram, так как он агрегируется между репликами, в то время как Summary не агрегируется. Счётчики также полезны для отслеживания общего количества событий, таких как количество HTTP-запросов или ошибок, которые происходят в системе.
Типичные ошибки
Типичные ошибки при использовании счётчиков включают использование меток с неограниченной кардинальностью (например, user_id, request_id, полные URL), что может привести к проблемам с производительностью и стабильностью Prometheus. Также важно использовать имена метрик с правильными единицами измерения (например, http_request_duration — секунды? миллисекунды? всегда включайте суффикс единицы). Непоследовательные имена меток между метриками и приложениями могут привести к проблемам при объединении данных.