increase()
Тема дорожной карты · Prometheus
Функция increase() в PromQL используется для вычисления общего увеличения метрики-счётчика за заданный временной диапазон. Это делает её ценным инструментом для измерения количества событий в конкретном окне времени. Например, increase(http_requests_total[1h]) вернёт количество HTTP-запросов за последний час для каждого временного ряда. Внутренне increase() эквивалентна rate() * duration, но возвращает абсолютное увеличение вместо скорости в секунду. Как и rate(), функция increase() корректно обрабатывает сбросы счётчика из-за перезапусков процесса, компенсируя разрывы. Функцию increase() следует использовать с ранговыми векторами, охватывающими не менее нескольких интервалов опроса, чтобы получить точные результаты. Особенно она полезна в правилах записи и дашбордах планирования ёмкости в Prometheus.
Как это работает
Функция increase() вычисляет общее увеличение метрики-счётчика за заданный временной диапазон. Она эквивалентна rate() * duration, но возвращает абсолютное увеличение, а не скорость в секунду. В отличие от rate(), которая возвращает скорость изменения метрики в секунду, increase() возвращает общее увеличение за указанный временной интервал. Это делает её особенно полезной для измерения количества событий, например, HTTP-запросов или операций в системе.
Когда применять
increase() особенно полезна для измерения количества событий в конкретном окне времени. Например, её можно использовать для отслеживания количества HTTP-запросов за последний час или количество операций в системе за определённый временной диапазон. Она также полезна для создания правил записи и дашбордов планирования ёмкости в Prometheus. Например, можно использовать increase() для предсказания заполнения диска или для создания алертов на отсутствие данных.
Типичные ошибки
Когда используется функция increase(), важно учитывать несколько типичных ошибок. Например, использование histogram_quantile() без предварительного суммирования по репликам может привести к неверным результатам, так как пересчитанный квантиль для каждой реплики не эквивалентен общему квантилю для всего кластера. Также использование irate() в долгосрочных графиках может привести к шумным данным, так как irate() рассчитывается на основе двух последних образцов и может быть нестабильной метрикой для длительного периода. Кроме того, использование absent() для создания алертов может привести к ложным срабатываниям в случае легитимного обслуживания, что может вызвать срабатывание на-call.