大多数 RabbitMQ 问题不会在凌晨三点以完整故障的形式突然爆发。它们悄悄积累——一个队列深度在数天内持续上涨,一个消费者数量自上次部署后就少了一个,一个 dead-letter queue 已经两周没人清理过。等到真正触发告警时,问题往往已经恶化了一段时间。
惯常的应对方式是更频繁地打开 Dashboard。这有用,直到某一天它不再奏效——因为”检查 Dashboard”本身不是一个可靠的流程。它依赖有人记得去看,知道什么是正常状态,还得有时间解读眼前的信息。
我们构建每日摘要,就是为了让被动监控成为默认行为,而不是一项需要手动执行的操作。
它是什么
每天一次,Qarote 会向你发送一封结构化的邮件,汇总你的 RabbitMQ 集群状态。每个 broker、每个表现异常的队列、每条活跃告警——汇聚成一份不到一分钟即可读完的快照。
它被设计用来回答三个问题,否则你就得登录进去自己找答案:
- 现在有没有明显的异常?
- 有没有队列在朝着值得关注的方向趋势变化?
- 有没有告警已经开了很久,久到让你怀疑它一直被静默忽略?
你不需要身处故障处理中才能觉得它有用。这正是设计的初衷。
它包含什么
Broker 健康状态 — 每台服务器一行状态:健康、告警或严重。如果某台服务器有 CRITICAL 告警,这是你看到的第一件事。
队列趋势 — 队列深度在过去 24 小时内增长超过 10%,或是有消息堆积但没有活跃 consumer 的队列。这些是通常在故障前出现的早期信号。
消息速率 — 每台服务器的平均发布与消费速率,让你在积压形成之前就能发现速率不对称。
活跃告警 — 按严重程度排序。如果某条告警在数天前触发后无人确认,它会出现在这里。顺序依次为 CRITICAL、HIGH、MEDIUM、LOW。
上次发送时间 — 每份摘要都记录发送时间,让你无需打开应用即可确认定时任务是否正常运行。
如何启用
进入 设置 → Daily Digest,打开开关即可。就这些。第一份摘要将在次日早上 08:00 UTC 发出,发送至你工作区的联系邮箱。
如果你使用的是 Developer 或 Enterprise 计划,可以自定义发送计划:按天或按周,任意发送时间,任意星期几。你也可以添加额外收件人,并将摘要同步推送到 Slack 频道。
设置页面还会显示下一次摘要的发送时间,让你随时确认配置是否已生效。
为什么选择邮件
我们考虑过很多投递方式:推送通知、纯 Slack、站内摘要。最终还是回归邮件,原因只有一个:它以恰当的方式异步存在于你的工作流中。接收它不需要打开任何应用。它会在早晨的例行处理中随其他信息一起落在你的收件箱里。方便转发给团队成员,也会自动归档。
Slack 同样支持(付费计划),因为有些团队完全通过 Slack 运转,根本不会看邮件。但邮件是默认选项,因为它是我们拥有的最可靠的渠道——用于传达”今天需要有人看到这条信息,但它不需要立即打断任何人”。
测试摘要
我们在设置页面添加了”发送测试摘要”按钮。点击后,你会立即收到一份真实的摘要——基于你的真实 broker 数据生成——无需等到明天早上才能看到实际效果。
如果你的集群状态比较混乱,这也是一种无需浏览 Dashboard 即可快速获取完整健康快照的方式。有用户告诉我们,他们把发送测试摘要作为每天早上的例行检查。
接下来
摘要目前涵盖 broker 健康状态、队列趋势和告警。我们计划后续添加:
- DLQ 摘要 — 摘要周期内 dead-letter queue 的深度变化,并按队列逐项列出
- Consumer 变动 — 自上次摘要以来 consumer 数量发生变化的队列
- 阈值预警标注 — 在告警触发之前,标记出正在接近已配置告警阈值的队列
如果你希望在每日摘要中看到某个目前尚未包含的信号,告诉我们。现有内容大部分来自于询问各团队在早上坐下来时实际都会检查哪些东西。
每日摘要今天起对所有计划开放。在 设置 → Daily Digest 中启用它。