Я использую плагин Prometheus для RabbitMq, который отслеживает количество опубликованных сообщений в разных очередях. Меня интересуют следующие метрики c: rabbitmq_queue_messages_published_total
, у которых есть несколько меток, но меня интересует метка queue
. В RabbitMq по умолчанию каждая очередь будет иметь связанную с ней очередь ошибок. Таким образом, если исходная очередь называется ConnectionQueue
, будет очередь ConnectionQueue_Error
для ошибок. Итак, наши мгновенные векторы будут выглядеть так:
rabbitmq_queue_messages_published_total{queue="ConnectionQueue",...} : 5000
rabbitmq_queue_messages_published_total{queue="ConnectionQueue_Error",...} : 50
...
rabbitmq_queue_messages_published_total{queue="SomeOtherQueue",...} : 4000
rabbitmq_queue_messages_published_total{queue="SomeOtherQueue_Error",...} : 40
Итак, я хочу рассчитать частоту ошибок для каждой очереди за последние 5 минут. Я пробовал этот запрос:
(sum by (queue)(rate(rabbitmq_queue_messages_published_total{queue=~".*(Errors)"}[5m]))) / (sum by (queue)(rate(rabbitmq_queue_messages_published_total[5m])))
Но проблема в том, что он не группирует вместе только две соответствующие очереди. Есть ли способ добиться этого?