Middle
Какви видове метрики в Prometheus знаете?
sobes.tech AI
Отговор от AI
Prometheus поддържа четири основни типа метрики:
- Брояч (Counter): Монотонно нарастваща стойност, която може само да се увеличава (или да се нулира при рестартиране на процеса). Използва се за броене на инкрементални събития, като заявки, грешки или завършени задачи.
// Пример в Go var requestsTotal = prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Общ брой HTTP заявки.", }, ) - Гейдж (Gauge): Произволна числова стойност, която може да се увеличава или намалява. Използва се за измерване на текущото състояние на нещо, като използване на CPU, памет, брой активни потребители или размер на опашката.
# Пример в Python from prometheus_client import Gauge cpu_usage = Gauge('cpu_usage_percent', 'Текущ процент на използване на CPU') cpu_usage.set(55.5) - Хистограма (Histogram): Измерва разпределението на проби (например, времена за отговор на заявки) и ги групира в конфигурируеми кошници (buckets). Позволява получаване на данни за броя проби във всяка кошница и общата сума на стойностите. Използва се за анализ на закъснения.
// Пример в Java import io.prometheus.client.Histogram; static final Histogram requestLatencies = Histogram.build() .name("http_request_duration_seconds") .help("Продължителност на заявката в секунди.") .buckets(0.1, 0.5, 1.0, 2.5, 5.0, 10.0) // Кошници .register(); - Обобщение (Summary): Подобно на хистограмата, но на клиента изчислява конфигурируеми квантилни стойности на разпределението на пробите в плъзгащо се времево окно. Осигурява също общия брой проби и тяхната сума. Подходящо за измерване на закъснения, когато квантилите са важни, но изисква повече изчислителна мощност и може да предоставя по-малко точни квантилни стойности при агрегация.
# Пример в Ruby require 'prometheus/client' requests_summary = Prometheus::Client::Summary.new(:request_duration_seconds, 'Продължителност на заявката в секунди.')
Изборът на тип метрика зависи от характера на данните, които трябва да се следят.