Похоже, вы используете датчик и сообщаете только текущее количество ожидающих сообщений в вашей очереди. Здесь у вас есть проблема, связанная с тем, что время очистки является значимым - и, таким образом, в большинстве случаев не даст того, что вам нужно. Ваш вариант использования звучит как идеальный пример для метрики counter
с функцией increase()
.
Счетчик - это тип метрики, который всегда увеличивается и подсчитывает общее количество (например) сообщений, поступающих в очередь. Затем вы можете применить функцию increase()
для вычисления (не совсем точного) увеличения значения между первым и последним элементом в вашем векторе диапазона.
increase(mymessagingservice_inbox_messages_total{environment="prod"}[30m])
Это означает, что вам необходимо обработать код таким образом, чтобы увеличить его счетчик, как только новое сообщение будет помещено в папку «Входящие».
Подробнее см. В документах по счетчикам и функции увеличения . Вы также можете взглянуть на показатели экспортера rabbitmq, который делает это именно так: https://github.com/kbudde/rabbitmq_exporter#queues---counter
Когда все настроено, вы можете создать правило, которое вычисляет, не было ли увеличения за последние 30 минут с этим простым условием:
increase(mymessagingservice_inbox_messages_total{environment="prod"}[30m]) == 0