使用 spath 读取 splunk jsonArray
read splunk jsonArray with spath
这是我的设置:
| makeresults
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
|spath path={}{} output=data
我想要 3 个不同的元组,A 在一起,B 在一起,C 在一起,
但我的要求都在一条线上。
我可以做类似
的事情
|spath path={0}{} output=data0
|spath path={1}{} output=data1
|spath path={2}{} output=data2
但我正在寻找更有活力的东西:)
有什么想法吗?
假设您的数据不包含任何其他 JSON,您可以使用正则表达式来提取每个条目并以这种方式进行处理。检查这个例子。
| makeresults count=5
| eval random=random()
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
| rex max_match=0 field=_raw "(?<d>\[[^\[\]]+\])"
| mvexpand d
| streamstats count by random
| eval data_{count}=d
| fields _time, data_*, random
| stats values(_time) as _time, values(*) AS * by random
| fields - random
我为 LOL 添加了一些额外的复杂性。 streamstats
用于获取增量计数器,然后用于按 data_0
、data_1
等顺序创建一些新的列名...开始并包含在活动中,因此您可以在最后加入所有拆分活动。
这是我的设置:
| makeresults
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
|spath path={}{} output=data
我想要 3 个不同的元组,A 在一起,B 在一起,C 在一起, 但我的要求都在一条线上。
我可以做类似
的事情|spath path={0}{} output=data0
|spath path={1}{} output=data1
|spath path={2}{} output=data2
但我正在寻找更有活力的东西:)
有什么想法吗?
假设您的数据不包含任何其他 JSON,您可以使用正则表达式来提取每个条目并以这种方式进行处理。检查这个例子。
| makeresults count=5
| eval random=random()
| eval _raw="[[\"A\",\"AA\"],[\"B\",\"BB\"],[\"C\",\"CC\"]]"
| rex max_match=0 field=_raw "(?<d>\[[^\[\]]+\])"
| mvexpand d
| streamstats count by random
| eval data_{count}=d
| fields _time, data_*, random
| stats values(_time) as _time, values(*) AS * by random
| fields - random
我为 LOL 添加了一些额外的复杂性。 streamstats
用于获取增量计数器,然后用于按 data_0
、data_1
等顺序创建一些新的列名...开始并包含在活动中,因此您可以在最后加入所有拆分活动。