Prometheus PromQL使用RabbitMq队列计算错误率

Prometheus PromQL使用RabbitMq队列计算错误率,prometheus,promql,Prometheus,Promql,我正在使用用于RabbitMq的Prometheus插件,该插件跟踪到不同队列的已发布消息的数量。我对以下指标感兴趣:rabbitmq\u queue\u messages\u published\u total,它有两个标签,但我对queue标签感兴趣。默认情况下,在RabbitMq中,每个队列将有一个错误队列与其配对。因此,如果原始队列被称为ConnectionQueue,则会出现ConnectionQueue\u错误错误队列。因此,我们的瞬时向量将如下所示: rabbitmq_queue_

我正在使用用于RabbitMq的Prometheus插件,该插件跟踪到不同队列的已发布消息的数量。我对以下指标感兴趣:
rabbitmq\u queue\u messages\u published\u total
,它有两个标签,但我对
queue
标签感兴趣。默认情况下,在RabbitMq中,每个队列将有一个错误队列与其配对。因此,如果原始队列被称为
ConnectionQueue
,则会出现
ConnectionQueue\u错误
错误队列。因此,我们的瞬时向量将如下所示:

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])))

但问题是它并不是只将两个对应的队列分组在一起。有没有办法做到这一点?

您必须通过
队列
标签将
上的
添加到组中,作为
左连接操作

(sum by (queue)(rate(rabbitmq_queue_messages_published_total{queue=~".*(Errors)"}[5m]))) / on (queue) (sum by (queue)(rate(rabbitmq_queue_messages_published_total[5m])))

您必须通过
队列
标签将
上的
添加到组中,作为
左连接操作

(sum by (queue)(rate(rabbitmq_queue_messages_published_total{queue=~".*(Errors)"}[5m]))) / on (queue) (sum by (queue)(rate(rabbitmq_queue_messages_published_total[5m])))