Довольно краткий и хорошо подготовленный первый вопрос здесь.Пожалуйста, придерживайтесь этого духа!
При работе со счетчиками такие функции, как rate()
, irate()
, а также increase()
, корректируются при перезагрузке из-за перезапусков.За исключением названия, функция increase()
не рассчитывает абсолютное увеличение в заданном временном интервале, но представляет собой другой способ записи rate(metric[interval]) * number_of_seconds_in_interval
.Функция rate()
выполняет первое и последнее измерения в серии и рассчитывает увеличение в секунду за данное время.По этой причине вы можете наблюдать нецелые увеличения, даже если вы всегда увеличиваете полные числа, поскольку измерения почти никогда не происходят точно в начале и в конце интервала.
Для получения более подробной информации об этом, пожалуйста,взгляните на документы prometheus для функции increase()
.Есть также несколько полезных советов о том, что и что не следует делать при работе со счетчиками в надежном блоге восприятия .
Рассматривая размеры меток, я также думаю, что счетчик сбрасывает донне относится к вашему построенному примеру.Существует одна метка с именем reason
, которая изменилась между перезапусками и создала второй временной ряд (не продолжая существующий).Здесь вы также в основном суммируете коэффициенты увеличения двух разных временных рядов, которые (для них самих) имеют свою экстраполяцию.
Так что в принципе нет ничего плохого в том, что вы делаете, вы просто не должныполагайтесь на получение высокоточных чисел из Прометея для вашего варианта использования.