Prometheus PromQL使用RabbitMq队列计算错误率
我正在使用用于RabbitMq的Prometheus插件,该插件跟踪到不同队列的已发布消息的数量。我对以下指标感兴趣: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\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])))