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