获取警报处于状态的秒数

时间:2019-10-01 22:55:14

标签: prometheus

给出如下的ALERTS查询:

List("foo_", "", "_bar", "", "baz", "")

您怎么知道它发射了多少秒?

1 个答案:

答案 0 :(得分:2)

弄清楚过去一小时/一天/警报发出的秒数(或相等的时间百分比)非常简单:

sum_over_time(ALERTS[1h:1s])

或者,出于效率考虑,以较低的分辨率:

sum_over_time(ALERTS[1h:10s]) * 10

弄清楚警报何时开始触发(或等效地,自上次开始触发以来已经触发了多长时间):

ALERTS{alertstate="firing"}
  * ignoring(alertstate)
(
  time() - max_over_time(timestamp(ALERTS{alertstate="pending"})[1h:10s])
    or ignoring(alertstate)
  ALERTS{alertstate="firing"} * 3600
)

即自上次处于"pending"状态(当前正在触发)以来的时间。请注意,这里有一个1h范围,默认范围是3600,这意味着它会在3600秒时达到最大值。