Arrays 你能在logstash中检查空数组吗?
我有一个变种正在添加/合并标签数组Arrays 你能在logstash中检查空数组吗?,arrays,logstash,logstash-grok,Arrays,Logstash,Logstash Grok,我有一个变种正在添加/合并标签数组 if [context][tags] { mutate { merge => [ "tags", "context[tags]" ] remove_field => [ "context[tags]" ] } } 问题是,在[tags]开始为空的情况下,我以一个数组结束。。。 [nil,'something1','something2'] 有没有办法在我合并之前测试[tags]是否为空,如果有,则替换而不是合并?Alcan
if [context][tags] {
mutate {
merge => [ "tags", "context[tags]" ]
remove_field => [ "context[tags]" ]
}
}
问题是,在[tags]
开始为空的情况下,我以一个数组结束。。。
[nil,'something1','something2']
有没有办法在我合并之前测试
[tags]
是否为空,如果有,则替换而不是合并?Alcanzar有办法。经修订的有效代码:
if [context][tags] {
if [tags] {
mutate {
merge => [ "tags", "context[tags]" ]
remove_field => [ "context[tags]" ]
}
} else {
mutate {
rename => [ "context[tags]", "tags" ]
remove_field => [ "context[tags]" ]
}
}
}
事实证明,我无法使用
replace
将context[tags]
切换到tags
,但是重命名
效果很好。你的问题似乎是通过示例来回答的。。。您是否尝试过嵌套在if[context][tags]
中的if[tags]
?我将尝试一下。