Gauge

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

Датчик — один из четырёх основных типов метрик Prometheus, который представляет собой единственное числовое значение, которое может произвольно расти и уменьшаться. Это делает его идеальным для измерения таких показателей, как текущее использование памяти, температура ЦП или количество активных соединений. В отличие от счётчиков, датчики запрашиваются непосредственно как текущее значение и не требуют применения функций, таких как rate(), чтобы иметь смысл. Метрики-датчики, как правило, именуются так, чтобы отражать текущее состояние системы, например node_memory_MemAvailable_bytes или go_goroutines. Клиентские библиотеки Prometheus предоставляют методы Set(v), Inc(), Dec() и Add(v) для обновления значений датчиков, что обеспечивает гибкость и удобство их использования.

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

Gauge представляет собой временной ряд уникально идентифицируемый metric_name{label1="value1", label2="value2"}. Значения образцов включают float64 и метку времени. В Prometheus существует четыре типа метрик: Counter (только растёт — http_requests_total), Gauge (растёт/убывает — cpu_usage), Histogram (бакеты + сумма + количество — для распределений задержек) и Summary (квантили считаются на стороне клиента — менее распространён). Конвенция имён для метрик включает <namespace>_<subsystem>_<name>_<unit> (например http_request_duration_seconds).

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

Histogram лучше подходит для измерения задержек, чем Summary, поскольку histograms агрегируются между репликами, в то время как summaries не агрегируются. Счётчики (Counter) используются для отслеживания событий, по которым вы применяете функцию rate(), например для подсчёта количества запросов. Датчики (Gauge) используются для отслеживания текущих значений, таких как температура ЦП или уровень памяти.

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

Одним из распространённых ошибок при использовании датчиков является применение меток с неограниченной кардинальностью (например, user_id, request_id, полные URL), что может привести к перегрузке Prometheus. Также важно правильно указывать единицы измерения в названиях метрик (например, http_request_duration — секунды? милисекунды? всегда добавляйте суффикс единицы измерения). Непоследовательные имена меток между метриками и приложениями могут привести к проблемам при объединении данных.

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

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