如何在Splunk查询中按文件名日期聚合同日期源文件的统计数据?
Splunk按文件名日期分组聚合查询方案
首先从source字段(即文件名)中提取日期标识字段,再按该字段分组聚合即可实现需求,可用查询语句如下:
eventtype="metric:sample:example" source="test_dev_*.json" OR source="test_prod_*.json" | rex field=source "test_(?:dev|prod)_(?<file_date>\d{2}_\d{2}_\d{4})\.json" | stats sum(number_of_car) as "# Total_Car", sum(Parked_cars) as "# Stopped_Cars", sum(Buses) as "# Total_Bus", sum(Parked_buses) as "# Stopped_Buses" by file_date | sort file_date | addcoltotals
语句说明
- 保留原有过滤逻辑,匹配所有dev、prod环境的日期格式json文件
rex命令通过正则从文件名中提取出08_07_2021格式的日期字符串,存为file_date字段,无需提前定义字段,查询时自动计算- 聚合逻辑将原有的
by source改为by file_date,即可自动将相同日期的dev、prod文件数据合并统计 sort file_date可按日期顺序展示结果,不需要可以删除- 原有的
addcoltotals保留的话会在最后一行增加所有日期的汇总值,不需要可以删除
该方案无需修改现有文件名规则,后续新增的带日期文件会自动适配查询逻辑。
内容的提问来源于stack exchange,提问作者Krish
相关产品推荐
相关产品推荐

