【发布时间】:2019-06-04 07:26:33
【问题描述】:
我在 sumologic 上完成了日志记录。日志 JSON 包含请求的响应时间。让它成为一个名为“response_time”的 JSON 键。每个请求都由唯一 ID 标识,由 JSON 键“request_id”表示。和一个由 JSON 键“url”表示的 URL。我需要根据以下情况在松弛通道上发出警报。
1) 在一个10分钟的窗口内,如果有100个请求,如果超过5%的请求响应时间超过100ms,则提醒所有的“url”、“request_id”和“response_time”那些请求。 2) 如果小于或等于 5% 的请求的响应时间超过 100 毫秒,则根本不要发出警报。 我写了一个这样的查询。
_sourceName=<my_source_name>
| json field=_raw "response_time" as response_time
| json field=_raw "request_id" as request_id
| if (num(response_time) > 100, 1, 0) as higher
| if (num(response_time) <= 100, 1, 0) as lower
| count as total_requests, sum(higher) as
response_time_greater_than_100, sum(lower) as
response_time_less_than_100
| (response_time_greater_than_100/total_requests) as failure_ratio
| where (failure_ratio > 0.05)
当超过 5% 的请求的 response_time 超过 100 毫秒时,上述查询会为我提供所有请求。但无论响应时间如何,它都会给我所有请求。否则不返回任何结果。
除了这个结果之外,我还想用“response_time”> 100 ms 的请求进一步过滤上述查询。 只要有结果,它就会提供两个选项卡。一个用于“消息”,另一个用于“聚合”。我想将“消息”选项卡中的字段发送到松弛频道。如何做到这一点?
【问题讨论】:
标签: alert percentile sumologic