如果 Prometheus/Pushgateway 有旧数据,Grafana 将发出警报

Hir*_*uri 1 alarm grafana prometheus

我有一些客户将他们的指标推送到Pushgateway ,然后被Prometheus抓取。最后,我使用Grafana作为仪表板——我想这并不是一个太奇特的设置。

让我困惑的是,当其中一个客户端停止工作并且不再推送其指标时,Pushgateway 将进一步向 Prometheus 提供它收到的最后一个值,而 Grafana 将愉快地显示一条水平线。

但是,如果指标太旧,我希望收到警报。如何做到这一点?

Hir*_*uri 5

Prometheus 使用 time() 提供当前时间,它提供自 UTC 1970 年 1 月 1 日以来的秒数。Pushgateway 为每个作业保留一个指标:push_time_seconds,它显示自 1970 年 1 月 1 日 UTC 以来最后一次推送的时间(以秒为单位)。

所以查询

time() - push_time_seconds
Run Code Online (Sandbox Code Playgroud)

将显示您拥有的每个导出作业的年龄(以秒为单位)。现在,如果值超过定义的阈值,可以轻松进一步过滤并发出警报。对于预计每天运行一次的作业(因此它们的指标预计永远不会超过 24 小时),我在 Grafana 中将阈值配置为 25 小时(90000 秒),它的工作方式就像一个魅力。