用于修改数组字段的 logstash 过滤器
logstash filter to modify array field
我正在寻找可以修改数组字段的 logstash 过滤器。
例如,我想要一个修改器,可以把这个JSON文档
{
arrayField: [
{
subfield: {
subsubfield: "value1"
}
},
{
subfield: {
subsubfield: "value2"
}
}
]
}
进入这个JSON文件
{
arrayField: [
{
subfield: "value1"
},
{
subfield: "value2"
}
]
}
我试过以下输入
input {
mutate {
replace => ["[arrayField][subfield]", "%{[arrayField][subField][subsubField]}"]
}
}
但是输入只是改写数组字段,而不是对数组的每个元素进行操作。如何设置修饰符来对数组的每个元素进行操作?
感谢 Alain Collins 指出 ruby 过滤器。下面的输入起到了作用。
input {
ruby {
code => "
event['arrayField'].each{|subdoc| subdoc['subfield'] = subdoc['subfield']['subsubfield']}
"
}
}
我正在寻找可以修改数组字段的 logstash 过滤器。
例如,我想要一个修改器,可以把这个JSON文档
{
arrayField: [
{
subfield: {
subsubfield: "value1"
}
},
{
subfield: {
subsubfield: "value2"
}
}
]
}
进入这个JSON文件
{
arrayField: [
{
subfield: "value1"
},
{
subfield: "value2"
}
]
}
我试过以下输入
input {
mutate {
replace => ["[arrayField][subfield]", "%{[arrayField][subField][subsubField]}"]
}
}
但是输入只是改写数组字段,而不是对数组的每个元素进行操作。如何设置修饰符来对数组的每个元素进行操作?
感谢 Alain Collins 指出 ruby 过滤器。下面的输入起到了作用。
input {
ruby {
code => "
event['arrayField'].each{|subdoc| subdoc['subfield'] = subdoc['subfield']['subsubfield']}
"
}
}