Prometheus 获得向上度量 0 的计数以发出警报

Posted

技术标签:

【中文标题】Prometheus 获得向上度量 0 的计数以发出警报【英文标题】:Prometheus get count of up metric 0 for give alert 【发布时间】:2021-04-13 11:55:23 【问题描述】:

我在 Prometheus 上设置了警报,其中警报中有不同的作业。我想根据作业名称找出上周触发了多少次警报。所以有一个警报名称“A”并且有多个工作“B”,“C”,“D”,我想知道上周有多少次警报“A”因工作“B”而被解雇。

如果我使用以下表达式:

sum by(alertname) (changes(ALERTS_FOR_STATE[1w]))

它给了我上周发出的警报总数,但由于其中有多个工作,我无法弄清楚如何只计算特定工作的计数。

我想知道是否有其他方法可以实现相同的目标?

【问题讨论】:

【参考方案1】:

下面的查询呢?

sum by (alertname, job) (changes(ALERTS_FOR_STATE[1w]))

【讨论】:

它只显示 1 个计数,但我在上下文中的警报被触发了很多次。 以下是我的警报:-警报:XYZ expr: upjob="XYX" == 0 for: 15s,当我通过你给出的查询使用 sum 时,它不是检测到此警报。我已经读过更改(ALERT_FOR_STATE)仅在 ti 从挂起变为触发时才有效。我的警报触发了,但由于它没有正确显示计数,我认为它不会挂起。你能帮我吗? 尝试将“for: 15s”增加到“for: 2m”。 我无法改变。我需要监控我的服务器,使其停机时间不会超过 15 秒。它不适合普罗米修斯的用例吗?看看有多少次警报被触发? 你的 scrape_interval 是多少?默认值为 1m。也许你应该刮得更快。

以上是关于Prometheus 获得向上度量 0 的计数以发出警报的主要内容,如果未能解决你的问题,请参考以下文章

prometheus 指标类型

prometheus 指标类型

prometheus 指标类型

prometheus 指标类型

Prometheus Metric Type详解

用于度量生成的 Prometheus 查询