Splunk统计查询优化:按服务拆分429与非429状态请求计数
Splunk统计429与非429状态请求数方案
直接通过stats命令结合eval条件求和就能实现需求,无需使用multireport,具体查询语句如下:
original search | rex "GET /api/(?<service>[\w\-]+)/" | stats sum(eval(status=429)) as count_of_429 sum(eval(status!=429)) as count_of_not_429 by service
语句说明
sum(eval(status=429)) as count_of_429:当日志的status字段等于429时,eval返回1,否则返回0,通过sum汇总后得到该服务429状态的请求总数sum(eval(status!=429)) as count_of_not_429:同理,统计该服务非429状态的所有请求总数by service:按提取出的服务名称分组统计,最终每个服务对应一行结果
为什么你的multireport尝试失败?
multireport的作用是将当前结果集并行传递给多个子搜索,每个子搜索会生成独立的结果集,无法将两个子搜索的统计结果合并到同一行的对应服务下,因此达不到你想要的格式效果。
内容的提问来源于stack exchange,提问作者Sumeet Kumar Yadav
相关产品推荐
相关产品推荐

