如何调整Splunk查询以生成DtransferCount和DMCopyCount独立列?
Splunk 查询列拆分解决方案
你当前用append将两个搜索结果纵向拼接(上下叠加),导致结果是两行独立数据,现在要改成横向合并为DtransferCount和DMCopyCount两列,可按以下两种场景处理:
场景1:仅展示两类事件的总计数
如果不需要按_raw分组,只需要统计两类事件的总数量,用子查询直接赋值更高效:
| makeresults | eval DtransferCount=[search index="pd" "successful" "notif/output/" | stats count | return $count] | eval DMCopyCount=[search index="pd" "SBID=nr" "DM" "PAM=sende" "notif/archive/" | stats count | return $count] | fields DtransferCount DMCopyCount
场景2:按_raw分组展示对应计数
如果需要保留原有的_raw分组逻辑,让每个_raw对应两类事件的计数,先分别统计再聚合:
( search index="pd" "successful" "notif/output/" | stats count as DtransferCount by _raw ) | append [ search index="pd" "SBID=nr" "DM" "PAM=sende" "notif/archive/" | stats count as DMCopyCount by _raw ] | stats values(DtransferCount) as DtransferCount values(DMCopyCount) as DMCopyCount by _raw | fillnull value=0 DtransferCount DMCopyCount
- 先分别统计两类事件的计数并命名为目标列名
- 用
stats按_raw聚合,把同一_raw的两类计数合并到同一行 fillnull填充空值,确保所有行都有完整的两列数据
原查询问题说明
append是纵向拼接结果集,所以每行只会包含其中一类的字段,无法形成横向的两列结构。上述方法通过子查询赋值或聚合转列,实现了将两个结果集合并为横向列的效果。
内容的提问来源于stack exchange,提问作者Ajay Takur
相关产品推荐
相关产品推荐

