将任务执行指标发送到Zabbix
项目描述
将任务执行指标发送到Zabbix:启动了多少任务,成功完成或失败的任务有多少,还有多少任务仍在队列中(仅支持redis代理)。已测试Zabbix-3.0。
受https://gitlab.com/kalibrr/celery-prometheus启发
用法
运行 bin/celery zabbix --zabbix-nodename myhost.example.com --zabbix-server zabbix.example.com。(或者你可以传递 --zabbix-agent-config=/etc/zabbix/zabbix_agentd.conf,然后将从那里读取服务器+节点名称的值。)
导入相应的 Zabbix模板 来设置匹配的项目。
项目
以下项目将每60秒发送一次(通过 --dump-interval=x 来配置)
celery.task.started
celery.task.succeeded (触发器 > {$WARN_TASKS_FAILED})
celery.task.failed
celery.task.retried
这些是从监控进程开始的时间计算的,因此您需要在Zabbix服务器上将这些值作为增量处理。
celery.task.queuetime (仅当启用 task_send_sent_event 时)
celery.task.runtime
这些是中值,并使用“数值(浮点)”项目类型。
队列长度
如果你传递 --queuelength-interval=x,则每x秒将检查队列长度(注意:这仅适用于redis作为代理),并且还将发送以下项目
celery.queue[myqueuename]
这些是量表值,即它们包含每次检索的长度,因此它们可以上下波动。
celery.discover.queues
这是一个自动发现项,与Zabbix模板一起,将为每个队列创建一个项目和触发器。在您的宿主上,创建形式为{$WARN_QUEUE_LENGTH:myqueuename}的宏以确定触发阈值。
运行测试
celery_zabbix更改
1.1.0 (2019-11-28)
使Python-3兼容。您需要与py3兼容的zbxsend版本,例如来自https://github.com/pistolero/zbxsend/pull/9
1.0.4 (2019-06-26)
允许使用代理配置文件并在命令行上覆盖值(由Peter Radcliffe补丁)
1.0.3 (2018-03-23)
在检查队列长度后关闭我们使用的redis连接
在dump_stats和check_queue_length线程中捕获异常
1.0.2 (2018-03-21)
对缺失的task.runtime进行防御性处理
1.0.1 (2018-03-09)
修复代理配置解析中的拼写错误
1.0.0 (2018-03-06)
初始版本
项目详情
celery_zabbix-1.1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 19cf6c7de8ddd59834ced689a6cf84bbd322daabb3bab12a2a24fe94a9b57e98 |
|
MD5 | 38bdfe0ba31ec69c3592d35f6ca75f7f |
|
BLAKE2b-256 | e1fee2652ef4291eaee635f94f4f9dd78a45e5de4e47410a131879b01c30d423 |