You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求编写Prometheus告警规则监控RabbitMQ队列剩余空间

RabbitMQ队列剩余空间告警Prometheus表达式

前提条件

确保你的RabbitMQ Exporter已采集到以下指标:

  • rabbitmq_queue_messages:队列当前消息数
  • rabbitmq_queue_max_length_bytes:队列配置的x-max-length-bytes值(部分Exporter需开启对应采集参数才能获取)

告警表达式逻辑

你提供的计算逻辑存在表述偏差:剩余空间大于90%属于空闲充足状态,无需告警;实际应在**已用空间占比超过90%(剩余空间不足10%)**时触发告警。基于修正后的逻辑,对应的PromQL表达式如下:

(32768 * rabbitmq_queue_messages{queue=~"queue-test[1-6]", vhost="v-host"}) 
/ 
rabbitmq_queue_max_length_bytes{queue=~"queue-test[1-6]", vhost="v-host"} 
> 0.9

完整告警规则示例

将以下内容添加到你的Prometheus告警规则文件中:

groups:
- name: rabbitmq_queue_space_alerts
  rules:
  - alert: RabbitMQQueueSpaceUsageHigh
    expr: |
      (32768 * rabbitmq_queue_messages{queue=~"queue-test[1-6]", vhost="v-host"}) 
      / 
      rabbitmq_queue_max_length_bytes{queue=~"queue-test[1-6]", vhost="v-host"} 
      > 0.9
    for: 2m
    labels:
      severity: warning
    annotations:
      summary: "RabbitMQ队列空间使用率过高"
      description: "队列 {{ $labels.queue }} 已用空间占比超过90%,当前占比约 {{ $value | round 2 }}%,最大限制为 {{ $value | multiply 115747500 | humanizeBytes }}。"

说明

  • queue=~"queue-test[1-6]":匹配你指定的6个目标队列,可根据实际队列名称调整正则规则
  • vhost="v-host":替换为你的RabbitMQ虚拟主机实际名称
  • 32768:你提供的单条消息最大字节数
  • for: 2m:持续2分钟满足条件才触发告警,避免瞬时波动导致的误报

内容的提问来源于stack exchange,提问作者Slashlinux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:13:19