Celery 和 RabbitMQ - 监控和调出警报的工具

Celery 和 RabbitMQ - 监控和调出警报的工具

celery events我认为我们已经达到了和的可用性极限celery fllower。有没有好的工具可以监控在 RabbitMQ 下运行的 Celery 的状态?

具体来说,我希望在以下情况下发出警报:

  • 我的队列正在备份
  • 消费者注册或取消注册

了解以下内容也是有益的:

  • 何时执行了多少任务——某种历史指标日志
  • 平均任务持续时间等

答案1

我根本不使用 Celery,但用过 RabbitMQ 一段时间。现在我用的是钻石使用 RabbitMQ 收集器将统计数据发送到 Graphite,然后监控每个队列的长度。这至少会告诉您队列何时备份,尽管它不包括 RabbitMQ 使用的内存或磁盘阈值。它不能保证告诉您消费者何时注册或取消注册,但它可以告诉您有多少消费者。在我看来,如果有消费者并且队列没有严重备份,那么就没有大到需要担心的问题。

您可以使用发布/传送/重新传送/确认的次数统计数据来跟踪吞吐量的历史记录。

我跟踪任务持续时间,但据我所知,这实际上只是一个客户端问题,必须直接在 Celery 中完成。统计局效果非常好。通过与 Celery + StatsD 发布的一些挂钩,消费者注册(取消注册)可能成为可能。

为了监控 Graphite,我写了我自己的工具作为权宜之计,但裁判很有用,并且有一个适用于 Nagios 的 Graphite 插件。

相关内容