Какие знаешь виды метрик в Prometheus
1️⃣ Как кратко ответить
В Prometheus существуют четыре основных типа метрик: Counter, Gauge, Histogram и Summary. Counter используется для подсчета событий, Gauge измеряет текущее состояние, Histogram собирает распределение значений, а Summary предоставляет квантильные оценки.
2️⃣ Подробное объяснение темы
Prometheus — это система мониторинга и сбора метрик с открытым исходным кодом, которая позволяет собирать и анализировать данные о состоянии систем и приложений. Метрики в Prometheus делятся на четыре основных типа, каждый из которых предназначен для решения определенных задач.
-
Counter (Счетчик)
Counter — это монотонно увеличивающаяся метрика, которая используется для подсчета количества событий, таких как количество запросов к серверу или количество ошибок. Counter всегда увеличивается и никогда не уменьшается, за исключением случаев, когда он сбрасывается (например, при перезапуске приложения).
counter := prometheus.NewCounter(prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total number of HTTP requests.", })prometheus.NewCounter: Создает новый счетчик.Name: Имя метрики, которое будет использоваться в запросах.Help: Описание метрики для документации.
-
Gauge (Измеритель)
Gauge — это метрика, которая может увеличиваться и уменьшаться. Она используется для измерения текущего состояния, например, количества активных пользователей или использования памяти. Gauge подходит для значений, которые могут как увеличиваться, так и уменьшаться.
gauge := prometheus.NewGauge(prometheus.GaugeOpts{ Name: "memory_usage_bytes", Help: "Current memory usage in bytes.", })prometheus.NewGauge: Создает новый измеритель.Name: Имя метрики.Help: Описание метрики.
-
Histogram (Гистограмма)
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: Создает новую гистограмму.Buckets: Определяет границы ведер. В данном примере создается 10 ведер с шагом 0.1, начиная с 0.1.
-
Summary (Сводка)
Summary предоставляет квантильные оценки, такие как медиана или 95-й процентиль. Она используется для измерения распределения значений, аналогично Histogram, но с акцентом на квантильные оценки.
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: Создает новую сводку.Objectives: Определяет квантильные цели и их точность. Например, 0.5 (медиана) с точностью 0.05.
Эти метрики позволяют Prometheus эффективно собирать и анализировать данные о производительности и состоянии систем, предоставляя возможность для глубокого анализа и оптимизации.
🔒 Подпишись на бусти автора и стань Алигатором, чтобы получить полный доступ к функционалу сайта и отслеживать свой прогресс!
Подписаться