如何在Splunk中按服务分组统计API调用次数?
Splunk按服务分组统计API调用次数
针对你提供的API调用日志,要按服务名分组统计调用次数,可以通过以下Splunk查询实现:
核心查询语句
index=<你的索引名称> host=abc.com status=200 | rex field=request "^GET /api/(?<Service>[^/]+)/" | stats count BY Service | table Service count
语句解释
- 基础搜索定位:
index=<你的索引名称> host=abc.com status=200用于筛选目标日志,替换<你的索引名称>为实际日志所在的Splunk索引,若已处于对应索引上下文可省略该参数。 - 提取服务名称:
rex命令通过正则表达式从request字段中精准提取服务名。正则^GET /api/(?<Service>[^/]+)/会匹配/api/后到下一个/之间的内容,并将该内容命名为Service字段,正好对应my-bag、my-basket这类服务标识。 - 分组统计次数:
stats count BY Service按提取出的Service字段对日志分组,统计每组的调用次数。 - 格式化输出:
table Service count将结果整理为两列表格,和你期望的输出格式一致。
示例运行结果
用你提供的日志示例执行上述查询,会得到如下结果:
| Service | count |
|---|---|
| my-bag | 2 |
| my-basket | 2 |
| my-cart | 1 |
内容的提问来源于stack exchange,提问作者Sumeet Kumar Yadav
相关产品推荐
相关产品推荐

