Назад к вопросам
Middle
154
questionbank
Какие виды метрик в Prometheus вам известны?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Prometheus поддерживает четыре основных типа метрик:
- Счетчик (Counter): Монотонно возрастающее значение, которое может только увеличиваться (или сбрасываться до нуля при перезапуске процесса). Используется для подсчета инкрементальных событий, таких как количество запросов, ошибок или завершенных задач.
// Пример в Go var requestsTotal = prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Total number of HTTP requests.", }, ) - Датчик (Gauge): Произвольное численное значение, которое может как увеличиваться, так и уменьшаться. Используется для измерения текущего состояния чего-либо, например, загрузки ЦПУ, использования памяти, количества активных пользователей или размера очереди.
# Пример в Python from prometheus_client import Gauge cpu_usage = Gauge('cpu_usage_percent', 'Current CPU usage percentage') 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("Request duration in seconds.") .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, 'Request duration in seconds.')
Выбор типа метрики зависит от характера данных, которые требуется отслеживать.