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

Splunk如何提取JSON结构中tags元素的键值对为独立可搜索字段

Splunk提取tags数组键值对为独立字段解决方案

失效原因

你原有的SPL语句无法生效,是因为示例JSON中data.tags为对象数组结构,每个数组元素仅包含key和value两个固定属性,并非直接以标签名作为键的嵌套结构,因此指定data.tags.EmailAddress这类路径无法匹配到对应值。

可用SPL脚本

<替换为你的基础搜索语句>
| spath path=data.tags{} output=tags
| mvexpand tags
| spath input=tags path=key output=tag_key
| spath input=tags path=value output=tag_value
| eval {tag_key}=tag_value
| fields - tags, tag_key, tag_value
| stats values(*) as * by timestamp, field1, field2

步骤说明

  • spath path=data.tags{} output=tags:提取JSON中tags数组的所有元素,存入多值字段tags
  • mvexpand tags:将多值的tags字段拆分为单行,每行对应一组标签键值对对象
  • 两次spath操作:分别从每个标签对象中提取键名存入tag_key,提取值存入tag_value
  • eval {tag_key}=tag_value:动态生成字段,以tag_key的内容作为新字段名,tag_value作为对应字段的取值
  • fields - tags, tag_key, tag_value:删除处理过程中生成的临时字段,避免冗余
  • stats values(*) as * by 公共字段:将拆分出的多行同一原始事件合并回单行,所有标签会自动成为独立列;by后参数可替换为你实际业务中不需要聚合的原始公共字段

若tags中存在重复的key,可将values(*)替换为first(*)或last(*)调整聚合逻辑,符合你的业务需求即可。

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

相关产品推荐
方舟 Agent Plan

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

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