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

使用Splunk rex从日志提取字段并统计耗时大于10ms的方法数量

Splunk统计耗时大于10ms方法总数量实现方案

参考日志样例

c.s.m.c.advice.ExecutionTimeAdvice : <>
relationId = aa12 | Method Name = methodA() Time taken is = 0ms

c.s.m.c.advice.ExecutionTimeAdvice : <>
relationId = ab12 | Method Name = methodA(). Time taken is = 15ms

c.s.m.c.advice.ExecutionTimeAdvice : <>
relationId = ab12 | Method Name = methodB(). Time taken is = 1ms

完整实现SPL命令

# 请替换开头的索引、sourcetype为你自己的实际配置
index=业务索引 sourcetype=日志类型
| rex "Method Name = (?<method_name>[^ |\.]+).*Time taken\s+is = (?<cost_time>\d+)ms"
| eval cost_time=tonumber(cost_time)
| where cost_time > 10
# 统计总数量用下面这句
| stats count as 耗时大于10ms的方法总次数
# 若需要按不同方法分别统计,替换上面的stats为下面这句
# | stats count as 触发次数 by method_name

命令说明

  • rex部分的正则兼容日志里Time taken和is之间空格数量不一致、方法名后带多余.的情况,会准确提取方法名和耗时数值
  • eval将提取到的字符串格式的耗时转为数字,避免字符串比较出现逻辑错误
  • 你给出的样例日志执行后统计结果为1,对应methodA触发的15ms记录

内容的提问来源于stack exchange,提问作者k.jones

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:24:03