我正在尝试编写一个可以检查和删除多个空值字段的过滤器。
例如,
filter {
mutate {
remove_tag => [ "foo_%{somefield}" ] }
}
但我需要检查json中的许多字段,所以我想避免使用多个if条件。 在Google上搜索我发现了这个
ruby {
code => "event.to_hash.delete_if {|field, value| value == 'null' }"
}
但它不起作用,我不确定这是如何工作的。 有什么想法吗?
答案 0 :(得分:0)
您需要遍历所有字段并检查值是否为nil
(ruby中为null);如果是key
,请移除nil
。
这个红宝石过滤器可以使用,
ruby {
code => "
hash = event.to_hash
hash.each do |key,value|
if value == nil
event.remove(key)
end
end
"
}
如果有帮助,请告诉我。