There are a lot of new field creations, renames, and removals in my filter plugin. And if, for example, I try to club the renames together, the mutations don't get executed correctly and i end up with only half the mutations applied.
This is my filter plugin:
filter {
json {
source => "message"
target => "message_deserialized"
}
ruby {
init => "require 'base64'
require 'zlib'
require 'stringio'"
code => 'event.set("[message_deserialized][message_json_decoded]", Zlib::GzipReader.new(StringIO.new(Base64.decode64(event.get("[message_deserialized][message_json]")))).read)' }
json {
source => "[message_deserialized][message_json_decoded]"
target => "[message_deserialized][message_json_decoded_deserialized]"
}
mutate {
remove_field => [ "message", "[message_deserialized][message_json]", "[message_deserialized][message_json_decoded]" ]
}
mutate {
rename => { "[message_deserialized][message_json_decoded_deserialized]" => "[message_deserialized][message_json]" }
}
mutate {
rename => { "message_deserialized" => "message" }
}
split {
field => "[message][message_json]"
}
}
How to reduce LoC and optimise the transformations to execute faster?