PromQL - подсчитать, сколько раз метрика имела одно и то же значение - PullRequest
0 голосов
/ 06 ноября 2019

Существует ли какая-либо функция, которая показывает, сколько раз конкретная метрика имела одно и то же значение для Прометея?

У меня есть метрика, которая постоянно возвращает целое число 1024: exec_nsa_server_brokers_on_KM

Когда что-то идет не такэто значение может быть 1023 или даже 1022. Я хотел бы получить запрос, который будет возвращать, как в любое время этот показатель возвращал 1024 или 1023.

Я пробовал некоторые функции подсчета, но выглядитони работают по разным сценариям.

1 Ответ

0 голосов
/ 07 ноября 2019

Для этого вы можете использовать подзапросы или правила записи. Версия подзапроса будет выглядеть примерно так:

sum_over_time(count_values without() ("value", up)[10m:])

(замена up на exec_nsa_server_brokers_on_KM в вашем случае; и, необязательно, использование avg_over_time вместо получения соотношения вместо абсолютного значения).

Это дало бы вам приблизительное количество раз, которое каждая серия времени имела заданное значение за последние 10 минут (или любой интересующий вас временной интервал).

Правило записиАльтернатива может быть более эффективной, если вы вычисляете это значение достаточно часто (например, на панели обновления) и состоят просто в записи значения count_values without() ("value", up) в новую метрику и последующем вычислении sum_over_time() / avg_over_time() поверхэтот показатель вместо.

...