Почему в Prometheus функция увеличения () возвращает значение 1,33?

Мы построим график таймсерий с sum(increase(foo_requests_total[1m])), чтобы показать количество запросов foo в минуту. Запросы приходят довольно спорадически - всего пара запросов в день. Значение, отображаемое на графике, всегда равно 1,3333. Почему значение не 1? В эту минуту был один запрос.

введите описание изображения здесь


person James    schedule 29.07.2016    source источник
comment
Если вам нужны точные целочисленные результаты для increase() запроса, взгляните на MetricsQL.   -  person valyala    schedule 06.12.2020
comment
Я просто floor увеличиваю выражения, которые, кажется, работают так, как задумано .   -  person Jarno    schedule 15.02.2021


Ответы (1)


Проблема с вычислением этого числа заключается в том, что у нас есть только несколько точек данных внутри временного диапазона, и они, как правило, не находятся в точном начале и конце этого временного диапазона (здесь 1 минута). Что мы делаем со временем между началом временного диапазона и первой точкой данных, аналогично последней точке данных и концом диапазона?

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

person brian-brazil    schedule 29.07.2016
comment
Каким будет правильный способ изобразить все единичные случаи появления такого медленно движущегося счетчика? - person James; 29.07.2016
comment
То, что вы делаете, правильно. Если вам нужен более точный ответ, я бы посоветовал либо взять скорость за гораздо более длительный период времени, либо отработать журналы (например, стек ELK), а не метрики для этого конкретного графика. - person brian-brazil; 30.07.2016