celery events
我认为我们已经达到了和的可用性极限celery fllower
。有没有好的工具可以监控在 RabbitMQ 下运行的 Celery 的状态?
具体来说,我希望在以下情况下发出警报:
- 我的队列正在备份
- 消费者注册或取消注册
了解以下内容也是有益的:
- 何时执行了多少任务——某种历史指标日志
- 平均任务持续时间等
答案1
我根本不使用 Celery,但用过 RabbitMQ 一段时间。现在我用的是钻石使用 RabbitMQ 收集器将统计数据发送到 Graphite,然后监控每个队列的长度。这至少会告诉您队列何时备份,尽管它不包括 RabbitMQ 使用的内存或磁盘阈值。它不能保证告诉您消费者何时注册或取消注册,但它可以告诉您有多少消费者。在我看来,如果有消费者并且队列没有严重备份,那么就没有大到需要担心的问题。
您可以使用发布/传送/重新传送/确认的次数统计数据来跟踪吞吐量的历史记录。
我跟踪任务持续时间,但据我所知,这实际上只是一个客户端问题,必须直接在 Celery 中完成。统计局效果非常好。通过与 Celery + StatsD 发布的一些挂钩,消费者注册(取消注册)可能成为可能。
为了监控 Graphite,我写了我自己的工具作为权宜之计,但裁判很有用,并且有一个适用于 Nagios 的 Graphite 插件。