#rabbitmq #slack #alert #notifications #rmq #threshold

app rmq_monitor

这是一个简单的工具,用于监控 RabbitMQ,并在达到某些阈值时通过 Slack(旧版 webhook)进行通知。

9 个版本

0.2.6 2023 年 4 月 12 日
0.2.5 2020 年 6 月 9 日
0.2.3 2020 年 5 月 7 日
0.1.1 2020 年 4 月 30 日

命令行实用程序 中排名第 572

每月下载量 35

MIT 许可证

29KB
583

RabbitMQ 监控工具

Build badge

这是一个简单的工具,用于监控 RabbitMQ 队列,并在达到某些阈值时通过 Slack(旧版 webhook)进行通知。

安装

该工具发布在 crates.io 上,因此如果您已设置 cargo,则可以执行以下操作

cargo install rmq_monitor

选项

    -c, --config <config>    Your TOML config file (default is config.toml)

配置

该工具使用一个 TOML 配置文件。如果您没有传递任何 --config 参数,它将在工作目录中查找 config.toml

触发器

触发器可以通过值高于或低于给定阈值来激活。默认情况下为“高于”,但如果您在触发器配置中添加 trigger_when = "below",则当给定值低于您指定值时,它将被触发。

以下是一个示例触发器定义,可以放入 config.toml 文件中

[[triggers]]
type = "messages_ready"
threshold = 10000
queue = "sent_images"

当名为 sent_images 的队列中的准备就绪消息超过 10000 条时,此触发器将激活并发送消息。

可用的触发器

以下是当前可用的触发器和它们的类型字段。如果您为触发器指定了无效的类型,则 rmq_monitor 不会启动,并会因无法解析配置而打印出错误。

  • 消费者总数 (type = "consumers_total") - 当前正在从队列中消费的消费者数量
  • 总内存 (type = "memory_total") - 队列使用的总内存
  • 消息总数 (type = "messages_total") - 队列中当前的消息总数
  • 就绪消息数量 (type = "messages_ready") - 可供消费者使用并准备发送的消息数量
  • 未确认消息数量 (type = "messages_unacknowledged") - 已发送给消费者但尚未确认的消息数量
  • 重发消息数量 (type = "messages_redelivered") - 由于被拒绝而重发的消息数量
  • 消息总速率 (type = "messages_total_rate") - 消息在队列进出时的速率(每秒)
  • 就绪消息速率 (type = "messages_ready_rate") - 就绪消息变化的速率(每秒)
  • 未确认消息速率 (type = "messages_unacknowledged_rate") - 未确认消息变化的速率(每秒)
  • 发布速率 (type = "messages_publish_rate") - 消息在队列上发布的速率(每秒)
  • 投递速率 (type = "messages_delivery_rate") - 队列投递消息的速率(每秒)
  • 重发速率 (type = "messages_redeliver_rate") - 消息因拒绝而被重发回队列的速率(每秒)

Docker镜像

在Docker Hub上发布了一个最小Docker镜像(链接)。该镜像的大小仅为11MB。

要使用它,您只需要挂载一个包含您的配置文件的卷。容器将在/config/config.toml中查找配置文件,因此请将其挂载在那里。示例

docker run -it -v (pwd)/your_config.toml:/config/config.toml --rm zbrox/rmq_monitor:latest

或者如果您在kubernetes上运行并且挂载整个文件夹更简单

docker run -it -v (pwd)/where_i_keep_configs:/config --rm zbrox/rmq_monitor:latest

显然在这种情况下,您必须在该文件夹中命名配置文件config.toml。稍后我会添加一个容器变量,以便也能更改该名称。

依赖关系

~18–32MB
~513K SLoC