0

我正在创建一个 Grafana 仪表板来查看每个触发警报的总警报计数和持续时间(意味着它应该捕获警报触发状态的时间长度)。

用于捕获总警报计数的 PromQL 查询如下,

count by (alertname,customerName) (changes(customer_ALERTS[24h]))

想法是在 Grafana 表格面板中再添加两列,其中包含alert countduration

现在我需要获取查询以捕获每个警报的持续时间。有人可以分享一些想法吗?

4

1 回答 1

1

如果您知道警报的评估间隔,则可以使用以下 PromQL 查询来计算过去 24 小时内处于触发状态的警报的持续时间(以秒为单位):

count_over_time(customer_ALERTS[24h]) * <evaluation_interval_in_seconds>

该查询假定customer_ALERTS在警报触发时包含非空值,并且在警报未触发时没有任何值。如果customer_ALERTS包含zero警报未触发one时的值和警报触发时的值,则应使用以下查询来确定处于触发状态的警报的持续时间(以秒为单位):

avg_over_time(customer_ALERTS[24h]) * 24 * 3600

如果customer_ALERTS包含触发/不触发状态的其他值,则PromQL 子查询可用于计数处于触发状态的样本。还可以查看MetricsQL 函数,例如lifetime(m[d])share_gt_over_time(m[d], gt)count_gt_over_time(m[d], gt)

于 2020-11-08T13:36:47.130 回答