logstash中的%{[field〕}和[field〕之间有什么区别



有人能告诉我你用这两种方式使用我的字段有什么区别吗?是否修改数据类型?

在某些地方,%{[field]}可以用来引用字段的内容。例如

input { generator { count => 1 lines => [ '' ] } }
filter {
mutate { add_field => { "[Field1]" => "1" } }
mutate { rename => { "[Field1]" => "[Field2]" } }
mutate { add_field => { "[Field3]" => "3" } }
mutate { add_field => { "[Field4]" => "4" } }
mutate { rename => { "[Field3]" => "%{[Field4]}" } }
}
output { stdout { codec => rubydebug { metadata => false } } }

将产生

"4" => "3",
"Field2" => "1",

第一对突变添加了一个名为[Field1]的字段,然后将其重命名为[Field2]。第二组突变根据[Field4]的内容重命名[Field3]。

这被称为sprintf引用。它并不是在任何地方都有效。它需要插件对引用进行sprintf,而代码并不总是在您期望的地方这样做。

最新更新