介绍
有一些监控和查看celery集群的工具。
这篇文章会介绍其中的一些,另外还有一些关于监控的特性,如果事件和广播命令。
Workers
命令行管理工具
celery也可以用来检查和管理worker节点(和对tasks在一定程度上的管理)。
列出所有可用的命令:
或者获取指定命令的帮助:命令
shell:进入一个python shell
本地环境将会包含celery变量,即为当前的app实例。所有已知的任务都会被自动添加到本地(除非设置了“--without-tasks
”标志。)
状态:列出集群中的所有节点
结果:显示一个任务的结果注意你可以省略任务的名字只要任务不是使用的特定的结果后台。
清除:从所有配置的任务队列中清除信息。
这条命令将会删除CELERY_QUEUES配置中指定的队列中的所有消息。
警告:没有对应的undo命令,所有的消息都会被彻底清除。
你也可以通过-Q选项来指定要清除的队列:
通过-X选项来排除被清除的队列: 监控活动:列出活动的任务这会显示所有当前正在执行的任务。
监控调度:列出被调度的ETA任务。
这些是worker的保留任务,因为它们设置了eta或者countdown参数。
监控保留:列出所有保留任务。
这会列出所有被worker预取的任务,还有当前正在等待执行的任务(不包含eta任务)。
监控撤销:列出任务撤销历史。
监控注册:列出注册的任务
监控状态:显示worker统计数据
控制enable_events:使能Events
控制disable_events:禁用Events
迁移:将任务从一个broker迁移到另一个。
这个命令将会把所有的任务从一个broker迁移到另一个。因为这是个新命令而且还在实验中,所以在执行这个命令之前你需要保证有一个备份。
注意:所有的inspect和control命令都支持timeout参数,这个是等待响应的超时时间。如果因为延时而没有收到响应。你需要增加这个时间。
指定目的节点
默认情况下,管理和控制命令在所有的worker上执行。你可以通过--destination参数指定单一的或者workers列表。
Flower:Celery的实时web监控
Flower是一个Celery的基于web的实时监控和管理工具。它还在积极的开发之中,但是已经是一个很有效的工具了。它也是Celery建议使用的监控工具,废弃了Django-Admin,celerymon和基于ncurses的监控。
特性
通过使用Celery事件来实时监控
a.任务进度和历史
b.展示任务细节(参数,开始时间,运行时间和其它)
c.图表和数据
远程控制
a.查看worker状态和统计
b.关闭和重启worker实例
c.控制worker池大小的自动扩充设置
d.查看和修改一个worker消费的队列
e.查看当前运行的任务
f.查看被调度的任务(ETA/shutdown)
g.查看保留和撤销的任务
h.设置时间和频率限制
i.配置查看信息
j.撤销或者终止任务
HTTP API
a.列出workers
b.关闭一个worker
c.重启worker池
d.增大worker池
e.缩小worker池
f.自动控制worker池的规模
g.从一个队列开始消费
h.停止从一个队列消费
i.列出任务
j.列出任务类型
k.获取一个任务信息
l.执行一个任务
m.通过名字执行一个任务
n.获取任务结果
o.改变一个任务的软硬时间限制
p.改变一个任务的限制率
截图:
使用方法
使用pip进行安装
运行flower命令会启动一个可供你浏览的web服务器
默认端口是5555,但是你可以通过--port参数来改变
broker URL也可以通过--broker参数来传递
然后你就可以通过浏览器进行浏览了:
Flower还有很多其它的特性,包括一些授权相关的选项。更多信息请参考官方文档: official documentation
celery事件:Curses监控
2.0中的新特性
celery事件是一个简单的curses监控用来展示任务和worker的历史。你可以监控任务的结果和调用栈,它也支持一些管理命令如频率限制和关闭worker.这个工具的目的是做概念验证的,所以你最有可能还是希望使用Flower.
启动:
你会看到如下的界面:
celery事件也用来开启快照相机,查看快照说明:Snapshots
它有一个将事件dump到标准输出的工具: 通过使用"--help"选项查看完整的选项列表: