You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Splunk中从访问日志提取uri并统计各API调用次数

问题原因

你原有查询语句的正则规则存在两个缺陷:

  • 正则写死了匹配/api/v1/hello前缀,无法匹配其他路径的接口
  • 没有明确匹配边界,导致提取的内容截断或者带多余字符

正确的Splunk查询语句

(index=dummy OR index=dummy1) source=*dummy-service*  logger=reactor.netty.http.server.AccessLog 
| rex field=message "uri=(?<api_path>[^,]+)"
| chart count as 调用次数 by api_path
| sort - 调用次数

正则规则说明

uri=(?<api_path>[^,]+)的匹配逻辑:

  • 先定位到日志message字段里的uri=字符串
  • 捕获组api_path匹配所有不是逗号的字符,也就是从uri=后面开始直到下一个逗号之前的所有内容,刚好是完整的接口路径
  • 如果接口路径带query参数,想要只保留路径部分,可以调整正则为uri=(?<api_path>[^?,]+),自动截断问号后的参数内容
  • 如果只需要统计/api/v1前缀的接口,可以调整正则为uri=(?<api_path>\/api\/v1\/[^,]+),过滤其他前缀的路径

扩展统计用法(可选)

如果需要区分请求方法、状态码做多维度统计,可以扩展提取字段:

(index=dummy OR index=dummy1) source=*dummy-service*  logger=reactor.netty.http.server.AccessLog 
| rex field=message "method=(?<method>[^,]+), uri=(?<api_path>[^,]+), status=(?<status>\d+)"
| chart count as 调用次数 by method, api_path, status

内容的提问来源于stack exchange,提问作者Tapesh Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 17:39:03