如何用Splunk Eval从对象属性生成列表,且stats中不显示空name
Splunk 过滤空name的group对象并格式化显示
核心思路
先排除group.name为空的无效条目,再对有效group对象进行统计并按需格式化显示。
解决方案1:提前过滤无效事件
先通过where命令过滤掉group.name为空的事件,再执行统计:
# 替换成你的基础搜索和分组字段 your_base_search | where isnotnull(group.name) AND group.name != "" | stats values(group) as status by your_group_field # 可选:将多值字段转为换行分隔的列表形式 | eval status = mvjoin(status, "\n")
解决方案2:字段级过滤(保留原事件)
如果不想过滤整个事件,可通过eval生成仅包含有效group的字段,再统计:
your_base_search | eval valid_group = if(isnotnull(group.name) AND group.name != "", group, null()) | stats values(valid_group) as status by your_group_field # 可选:转为列表显示 | eval status = mvjoin(status, "\n")
显示格式说明
- 默认情况下,
stats values(group)会将同一分组下的group对象收集为逗号分隔的字符串。 - 如果需要显示为列表(每行一个对象):
- 执行
eval status = mvjoin(status, "\n")将多值字段用换行符连接; - 在Splunk表格视图的设置中,开启「Allow multi-valued fields to display in separate lines」选项。
- 执行
内容的提问来源于stack exchange,提问作者me-me
相关产品推荐
相关产品推荐

