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]
?我将尝试一下。