gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:02:27 26 4
gpt4 key购买 nike

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

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

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

最佳答案

您可以为每个名为 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 中相当轻松地绘制图表。

关于python - 使用 Prometheus 中的指标监控批处理作业的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62875905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com