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

Splunk搜索中合并大小写不同的JSON路径以统一统计计数

解决Splunk中JSON大小写路径字段合并统计问题

你的问题核心是重复使用spath的output参数到同一字段时,要么因语法错误导致提取失败,要么因数组/空值覆盖问题无法正确合并两种路径的数据。以下是两种可靠的解决方法:

方法一:使用coalesce合并临时字段(推荐)

先将两个大小写路径的结果提取到不同临时字段,再用coalesce函数合并为一个字段(该函数会依次取第一个非空值),确保两种路径的数据都被纳入统计:

index="x" 
| spath MessageTemplate 
| search MessageTemplate="Input Message: {Body}"
| spath input="Properties.Body"
| spath input="Properties.Body" path="voormelden{}.colloData{}.voormeldBronCd.code" output=VoormeldBronCode_lower
| spath input="Properties.Body" path="voormelden{}.ColloData{}.VoormeldBronCd.Code" output=VoormeldBronCode_upper
| eval VoormeldBronCode = coalesce(VoormeldBronCode_lower, VoormeldBronCode_upper)
| where isnotnull(VoormeldBronCode)  // 过滤空值,避免无效统计
| stats count by VoormeldBronCode

方法二:批量提取后重命名合并

如果你的JSON结构中这类大小写差异字段较多,可以先一次性提取所有字段,再通过rename将大小写字段映射为同一名称,最后处理多值情况合并:

index="x" 
| spath MessageTemplate 
| search MessageTemplate="Input Message: {Body}"
| spath input="Properties.Body"  // 提取所有Body内的字段
| rename voormelden{}.colloData{}.voormeldBronCd.code as VoormeldBronCode_temp, 
         voormelden{}.ColloData{}.VoormeldBronCd.Code as VoormeldBronCode_temp
| eval VoormeldBronCode = mvjoin(mvfilter(isnotnull(VoormeldBronCode_temp)), ",")  // 处理数组多值场景
| stats count by VoormeldBronCode

原搜索失效的原因

你提供的搜索中,第二次spath的output参数被换行拆分,属于Splunk语法错误——Splunk要求output关键字必须与spath命令在同一行,否则会被忽略,导致第二个路径的结果未写入VoormeldBronCode字段,自然无法合并统计。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:20:11