问题描述
我正在尝试使用 Grafana 为从 Prometheus 抓取的 Spring Boot 指标创建警报。用例是提醒每个服务抛出的异常。我正在使用 http_server_requests_seconds_count 指标,下面提到的是我用来创建图表的 PromQL 查询的细分。
-
首先,我排除了所有不会引发异常的指标。
http_server_requests_seconds_count{application="my-service-1",exception!~"None"}
-
接下来我应用了
rate()
函数,因为默认指标只是提供一个单调的值。rate(http_server_requests_seconds_count{application="my-service-1",exception!~"None"}[5m])
-
然后我使用以下条件来触发警报。 (使用
max()
函数作为sum()
和count()
函数考虑了数据点,这不是我的要求)WHEN max() OF query(A,5m,Now) IS ABOVE 0.02
EVALUATE every 1m FOR 5m
上述设置工作正常,只要满足警报条件就会发送通知。但是,我在使用这种方法时遇到了几个问题。
- 我需要实际的异常计数而不是比率
我尝试了以下方法来解决这个问题。但是,除非抛出任何新的异常,否则它仍然给出了一个单调的值。
count_over_time(http_server_requests_seconds_count{application="my-service-1",exception!~"None"}[5m])
- 对于每个异常,我都会收到多个系列,除非警报状态恢复到好的,否则 Grafana 不会第二次发送来自不同系列的条件满足的通知。
如何解决上述问题并让 Grafana 对每个新异常发出警报,并发送计数而不是速率?
感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)