【发布时间】:2020-03-10 18:05:52
【问题描述】:
背景
我们需要知道何时收到状态码为 500 的响应的请求百分比高于正常百分比。不是原始计数,而是总数的百分比。
Web 请求日志被传送到 Elasticsearch 并使用 Grafana 进行可视化。
使用SingleStat Math 插件,我们创建了一个仪表板,显示状态代码为 500 的所有请求的百分比。
- 查询 A - 统计所有状态码为 500 的地方
- 查询 B - 全部统计
查询数学:A/B * 100
我们甚至将小部件中的阈值设置为在达到 1% 时变为红色。
这很容易。当然,这需要有人观看仪表板。我们需要的是警报。
问题
如何创建在相同情况下触发的警报 - 即在给定时间段内,当 500 的数量超过请求总数的 1% 时。
我了解警报仅适用于图表小部件。所以我的问题的答案是创建一个显示总数百分比的图表。
我可以像使用 SingleStat Math 小部件一样将这两个查询添加到图表中,但我不知道如何设置警报缩减器以同时使用这两个查询,更不用说将一个除以另一个了。
看起来应该很简单:当小部件变红时给我发一封电子邮件。但是我该怎么做呢?
我的尝试
- 使用MetaQueries(类型:算术,表达式:A/B)但没有数据出现。
- 仪表板作为数据源有望从 SingleStat Math 小部件中提取值。这似乎只是为了提取查询,而不是计算。
【问题讨论】:
-
您是否尝试过使用 bucket_scripts? elastic.co/guide/en/elasticsearch/reference/current/… 。在您的警报条件中,可以使用 fx 代替 'count()'。
-
@badaboomskey - 是的,这成功了!谢谢。
-
很高兴我能帮上忙 :)
标签: elasticsearch grafana