如何使用Splunk查询提取日志ms值并计算应用avg响应时间
Splunk 提取日志毫秒值并计算平均响应时间操作流程
第一步:筛选目标日志范围
先通过日志原文关键字过滤出需要统计的日志条目,缩小后续计算的数据集范围,搜索命令如下:search "Received App information from Source"
第二步:提取毫秒数值为结构化字段
使用rex命令通过正则匹配日志中ms: 后的连续数字,将其转换为可用于统计的数值型字段:rex field=_raw "processed in ms:\s+(?<response_ms>\d+)"
匹配逻辑说明:精准锚定日志里的固定文本片段
processed in ms:,把后面紧跟的毫秒数字(比如示例中的467)捕获,命名为response_ms字段。
第三步:聚合计算平均响应时间
提取字段完成后,直接用stats函数计算平均值,支持按不同维度拆分统计:
- 统计所有目标日志的全局平均响应时间:
| stats avg(response_ms) as avg_process_response_ms - 按固定时间窗口拆分统计(例如每5分钟的平均响应趋势),完整可直接运行的搜索命令为:
search "Received App information from Source" | rex field=_raw "processed in ms:\s+(?<response_ms>\d+)" | bin _time span=5m | stats avg(response_ms) as avg_process_ms by _time
实用优化建议
- 日常高频统计该指标时,可将上述正则提取逻辑配置为永久字段提取规则,后续搜索匹配该类日志时会自动识别
response_ms字段,无需重复写提取命令。 - 可在提取字段后增加异常值过滤规则,避免无效数据拉偏统计结果,示例过滤命令:
| where response_ms > 0 AND response_ms < 10000,过滤掉无效0值、超范围的异常大值。
内容的提问来源于stack exchange,提问作者knowledge20
相关产品推荐
相关产品推荐

