我正在以这种格式获取数据:
{
"a": "1",
"b": "2"
}
我希望它更改为:
{
data: {
"a": "1",
"b": "2"
}
}
我可以使用mutate过滤器进行更改:
mutate {
rename => {
"[a]" => "[data][a]"
"[b]" => "[data][b]"
}
}
但是在这里,我必须分别重命名每个字段。
有没有一种方法可以在数据字段中移动整个传入消息,例如:
rename => {"[entite_message]" => "[data][entire_message]"}
答案 0 :(得分:0)
您可以使用Events API和ruby filter来实现。
添加下面的红宝石块应该可以解决问题。
ruby {
code => '
# Move everything to data
event.set("data", event.to_hash)
# Remove fields other than data
fields = event.to_hash.keys
fields.each{|field|
if (field != "data")
event.remove(field)
end
}
'
}