我们的几个应用程序具有每天晚上聚合数据的批处理作业。这些批处理作业是Python脚本,使用Prometheus Pushgateway将度量值推送到Prometheus,我们有一些规则,当这些度量值变得无效(例如,超过某个阈值)时,会触发警报(在Alertmanager中)
我们现在还想使用Prometheus度量来双重检查批处理作业本身是否正确运行:例如,作业是否按时启动?有没有发生错误?作业完成了吗?为此,我们希望更改Python脚本,以便在脚本开始和结束以及出现任何错误时推送度量。不过,这确实会带来一些问题:我们有相当多的批处理作业,每个批处理作业有3个指标,这会为规则/警报创建大量手动配置;我们还希望在Grafana中以图形方式显示状态,但不确定正确的视觉效果是什么
是否有其他人试图解决类似的问题,使用普罗米修斯度量来监控多个批处理作业的状态?您记录了哪些指标,您的警报/规则是什么样的?您是否找到直观的方式以图形方式显示每个批处理作业的状态
您可以为每个批处理作业公开一个称为
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中,你也应该能够很容易地将其绘制出来
相关问题 更多 >
编程相关推荐