使用Prometheus中的指标监控批处理作业的状态

2024-06-16 05:27:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我们的几个应用程序具有每天晚上聚合数据的批处理作业。这些批处理作业是Python脚本,使用Prometheus Pushgateway将度量值推送到Prometheus,我们有一些规则,当这些度量值变得无效(例如,超过某个阈值)时,会触发警报(在Alertmanager中)

我们现在还想使用Prometheus度量来双重检查批处理作业本身是否正确运行:例如,作业是否按时启动?有没有发生错误?作业完成了吗?为此,我们希望更改Python脚本,以便在脚本开始和结束以及出现任何错误时推送度量。不过,这确实会带来一些问题:我们有相当多的批处理作业,每个批处理作业有3个指标,这会为规则/警报创建大量手动配置;我们还希望在Grafana中以图形方式显示状态,但不确定正确的视觉效果是什么

是否有其他人试图解决类似的问题,使用普罗米修斯度量来监控多个批处理作业的状态?您记录了哪些指标,您的警报/规则是什么样的?您是否找到直观的方式以图形方式显示每个批处理作业的状态


Tags: 数据脚本应用程序图形度量规则状态错误
1条回答
网友
1楼 · 发布于 2024-06-16 05:27:37

您可以为每个批处理作业公开一个称为last_run_at的度量。 然后,您可以根据作业是否在24小时前运行(或者您的阈值是多少)发出警报

一个简单的警报是:last_run_at{env="prod"} < scalar(time()) - 60 * 60 * 24

普罗米修斯中的time()函数对此很有用。 文件:https://prometheus.io/docs/prometheus/latest/querying/functions/#time

您不必对每个作业发出警报。您可以对过去24小时内未运行的任何作业发出警报。也可以按环境或任何其他标签进行筛选

关键是,它不一定非得是1:1的作业才能发出警报。 在Grafana中,你也应该能够很容易地将其绘制出来

相关问题 更多 >