Мы используем Grafana + Prometheus для мониторинга нашей инфраструктуры, и недавно мы добавили некоторые ориентированные на бизнес показатели, и у меня возникли проблемы с одним из отслеживаемых счетчиков.Это счетчик времени сеанса.По сути, каждый раз, когда сеанс заканчивается, мы увеличиваем этот счетчик на время, которое пользователь провел в этом сеансе.Таким образом, если пользователь тратит 2 м, используя программное обеспечение, счетчик будет увеличен на 120000 мс.В течение нескольких дней этот подход работал идеально, но со вчерашнего дня, когда у нас было большое расхождение между одним счетчиком экземпляров и остальными, и этот большой счетчик был сброшен из-за перезапуска части службы, я не могу получитьзначимая единая панель статистики больше.
Вот график того, что произошло (этот счетчик имеет 3 метки, в результате которых> 50 комбинаций меток)
График Прометея
Текущее общее время за все время, отслеживаемое этим счетчиком, составляет 13,8 года в течение 4-дневного периода, но с момента сброса счетчика мои показатели одиночной статистики были либо -20 лет (с использованием различий), либо 35 лет (с использованием диапазона) в течение 24 часов.период.Это не так, если вы не учитываете сброс счетчика, так как diff и range будут смотреть на минимальные / максимальные / первые / текущие значения, но это больше не полезный показатель.
Если я установил таймфреймчтобы не включать сброс счетчика, и Diff, и Range показывают очень близкие значения к ожидаемому (наше использование очень линейное и предсказуемое).
Формула для панели с одиночным статусом выглядит следующим образом
sum(dyno_app_music_total_user_listen_time{server=~"[[server]]", clusterId=~"[[clusterid]]"})
Как я могу обработать сбросы в счетчике для метрики синглстата?