Какие типы метрик поддерживает Prometheus и в чём разница
1️⃣ Как кратко ответить
Prometheus поддерживает четыре типа метрик: Counter, Gauge, Histogram и Summary. Counter — это монотонно увеличивающийся счетчик. Gauge — это метрика, которая может увеличиваться и уменьшаться. Histogram собирает данные о распределении значений, разбивая их на интервалы (buckets). Summary также собирает данные о распределении, но с акцентом на квантильные значения.
2️⃣ Подробное объяснение темы
Prometheus — это система мониторинга и сбора метрик с открытым исходным кодом, которая широко используется для наблюдения за состоянием приложений и инфраструктуры. В Prometheus существует четыре основных типа метрик, каждая из которых предназначена для различных сценариев использования.
-
Counter (Счетчик)
Counter — это монотонно увеличивающийся счетчик, который используется для подсчета событий, таких как количество запросов к серверу или количество ошибок. Counter всегда увеличивается и никогда не уменьшается, за исключением случаев, когда он сбрасывается (например, при перезапуске приложения).
counter := prometheus.NewCounter(prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total number of HTTP requests.", })prometheus.NewCounter: Создает новый счетчик.CounterOpts: Опции для настройки счетчика, включая имя и описание.
-
Gauge (Измеритель)
Gauge — это метрика, которая может как увеличиваться, так и уменьшаться. Она подходит для измерения значений, которые могут колебаться, таких как температура, использование памяти или количество активных пользователей.
gauge := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "memory_usage_bytes", Help: "Current memory usage in bytes.", })prometheus.NewGauge: Создает новый измеритель.GaugeOpts: Опции для настройки измерителя, включая имя и описание.
-
Histogram (Гистограмма)
Histogram используется для измерения распределения значений, таких как время ответа или размер запроса. Она разбивает значения на интервалы (buckets) и подсчитывает количество значений, попадающих в каждый интервал.
histogram := prometheus.NewHistogram(prometheus.HistogramOpts{ Name: "request_duration_seconds", Help: "Histogram of request durations.", Buckets: prometheus.LinearBuckets(0.1, 0.1, 10), })prometheus.NewHistogram: Создает новую гистограмму.HistogramOpts: Опции для настройки гистограммы, включая имя, описание и интервалы.LinearBuckets: Создает линейные интервалы от 0.1 до 1.0 с шагом 0.1.
-
Summary (Сводка)
Summary также используется для измерения распределения значений, но с акцентом на квантильные значения, такие как медиана или 95-й процентиль. Summary полезна для получения более точных данных о распределении, но может быть более ресурсоемкой.
summary := prometheus.NewSummary(prometheus.SummaryOpts{ Name: "request_duration_summary", Help: "Summary of request durations.", Objectives: map[float64]float64{0.5: 0.05, 0.9: 0.01, 0.99: 0.001}, })prometheus.NewSummary: Создает новую сводку.SummaryOpts: Опции для настройки сводки, включая имя, описание и квантильные цели.Objectives: Определяет квантильные цели и их точность.
Каждый тип метрики в Prometheus имеет свои особенности и подходит для различных сценариев мониторинга. Counter и Gauge просты в использовании и подходят для базовых метрик, в то время как Histogram и Summary предоставляют более детализированную информацию о распределении значений.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться