Обнаруживать всплески как скользящий процент в PromQL

У меня есть случай использования, когда я хочу иметь возможность графически отображать скорость изменения во времени для данной метрики в процентах от скользящей суммы, но я понятия не имею, как выразить это в PromQL.

Например, если текущая сумма равна 100, а предыдущая сумма 5 минут назад была 50, это увеличение на 200% за последние 5 минут. Я хотел бы изобразить это изменение скорости с течением времени в процентах, чтобы я мог предупреждать об этом.

Вот что я пробовал:

delta(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m])
irate(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m]) >= 50

Однако я не совсем уверен, что эти запросы делают то, что я хочу. Я пытаюсь убедиться, что у меня есть возможность запрашивать всплески скорости с течением времени, чтобы я мог понять, когда наблюдается всплеск трафика, превышающий обычные взлеты и падения среднего трафика. Меня волнует скользящее среднее в процентах, потому что трафик обычно может быть выше или ниже в зависимости от времени суток и времени года, поэтому абсолютное значение может дать много ложных срабатываний, тогда как всплеск в 3 часа ночи и всплеск в 3 часа дня имеют место. выглядеть по-разному из-за разного объема трафика.


person mxplusb    schedule 07.01.2020    source источник


Ответы (1)


PromQL предоставляет для этого случая модификатор смещения. Следующий запрос вернет относительное изменение скорости передачи в секунду за последние 5 минут по сравнению с предыдущими 5 минутами:

rate(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m]) /
rate(firehose_counter_event_gorouter_total_requests_total{bosh_job_name="router"}[5m] offset 5m)
person valyala    schedule 10.01.2020
comment
В итоге я сделал это, но забыл обновить вопрос, спасибо за ответ! - person mxplusb; 11.01.2020