微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PromQL查询以查找每个触发警报的持续时间

如何解决PromQL查询以查找每个触发警报的持续时间

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

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

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

想法是在Grafana表格面板中添加另外两列,分别为alert countduration

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

解决方法

如果您知道警报的评估间隔,则可以使用以下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 subqueries可用于对处于触发状态的样本进行计数。还要查看MetricsQL functions,例如lifetime(m[d])share_gt_over_time(m[d],gt)count_gt_over_time(m[d],gt)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。