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

时间:2020-07-13 12:30:48

标签: python prometheus grafana prometheus-alertmanager prometheus-pushgateway

我们的几个应用程序具有批处理作业,这些作业每晚都会汇总数据。这些批处理作业是Python脚本,它们使用Prometheus Pushgateway将度量标准值推入Prometheus,并且我们有规则,当这些度量标准变为无效(例如,超过特定阈值)时,会触发警报(在Alertmanager中)。

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

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

1 个答案:

答案 0 :(得分:0)

您可以公开每个批次作业的指标last_run_at。 然后,您可能会根据作业是否运行了24小时之前(或任何阈值)而收到警报。

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

Prometheus中的time()函数将对此有用。 文件:https://prometheus.io/docs/prometheus/latest/querying/functions/#time

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

要点是,警报不必一定是1:1的工作。 而且您应该也可以在Grafana中相当轻松地绘制图形。