rabbitmq - RabbitMQ HealthCheck 基于使用管理 API 的“Stuck”队列
问题描述
我正在尝试针对 RabbitMQ 监控 API 编写健康检查。我想在队列中至少有一条消息并且最后一分钟没有收到 Ack 时发出警报。
我的 api 查询如下所示:http://rmqhost:15672/api/queues/MyVHost/MyQueue?msg_rates_age=60&msg_rates_incr=60
我正在查看消息、deliver_get_details.avg_rate和ack_details.avg_rate字段,如果消息大于零,并且两个平均速率都为零,那么我会提醒队列卡住或性能不佳。
结果在大部分时间都有效,但在开始和结束时有时消息大于零,并且 avg_rates 也为零(导致警报),但我刚刚将消息排队,或者消息只在那里停留了 30 秒。
有没有更可靠的方法来请求我需要在消息“卡住”至少一分钟后正确提醒的指标?
管理指标 API 的文档似乎缺乏,我猜测哪些字段最适合该任务(https://rawcdn.githack.com/rabbitmq/rabbitmq-server/v3.8.16/deps/ rabbitmq_management/priv/www/api/index.html )
解决方案
推荐阅读
- google-sheets - 填写 ={ARRAYFORMULA()} 中的空白单元格
- prometheus - 普罗米修斯中速率函数的总和
- flutter - 显示带有维护底部 AppBar 的特定列表的页面 - Flutter
- if-statement - 范围检查逻辑?
- javascript - Firebase getDownloadUrl 起初无法正常工作,我需要重新加载页面
- c++ - 如何使用 std::is_same 检测通用引用参数类型
- openapi - /$metadata 在 Azure API 管理 (AAM) 上不受支持用于板载 OData V4 API
- html - 如何使用 CSS 和 HTML 更改链接的颜色和悬停效果?
- python - 带有 Python 变量的 JSON 字符串
- c# - 如何检测控制台应用程序何时被 C# 中的计划任务停止?