Мы построим график таймсерий с sum(increase(foo_requests_total[1m]))
, чтобы показать количество запросов foo в минуту. Запросы приходят довольно спорадически - всего пара запросов в день. Значение, отображаемое на графике, всегда равно 1,3333. Почему значение не 1? В эту минуту был один запрос.
Почему в Prometheus функция увеличения () возвращает значение 1,33?
Ответы (1)
Проблема с вычислением этого числа заключается в том, что у нас есть только несколько точек данных внутри временного диапазона, и они, как правило, не находятся в точном начале и конце этого временного диапазона (здесь 1 минута). Что мы делаем со временем между началом временного диапазона и первой точкой данных, аналогично последней точке данных и концом диапазона?
Мы делаем небольшую экстраполяцию, чтобы сгладить это и получить в совокупности правильный результат. Для таких очень медленно движущихся счетчиков это может вызвать артефакты.
person
brian-brazil
schedule
29.07.2016
Каким будет правильный способ изобразить все единичные случаи появления такого медленно движущегося счетчика?
- person James; 29.07.2016
То, что вы делаете, правильно. Если вам нужен более точный ответ, я бы посоветовал либо взять скорость за гораздо более длительный период времени, либо отработать журналы (например, стек ELK), а не метрики для этого конкретного графика.
- person brian-brazil; 30.07.2016
increase()
запроса, взгляните на MetricsQL. - person valyala   schedule 06.12.2020floor
увеличиваю выражения, которые, кажется, работают так, как задумано . - person Jarno   schedule 15.02.2021