Hi, before creating an issue, I would like to check whether what I am seeing is expected behaviour. I am using Fluent Bit 1.0.4, and having multiple Nest filters with the same "Nest_under" key results in multiple top-level fields being created. A single Nest filter with multiple "Wildcard" entries, on the other hand, results in a single top-level field being created.
To be more specific:
while :; do echo "{\"stream\":\"stdout\",\"time\":\"time-value\"}"; sleep 1; done | \
./fluent-bit -f 1 -i stdin -t mytag -F nest -m mytag -p operation=nest -p wildcard=time -p nest_under=docker -F nest -m mytag -p operation=nest -p wildcard=stream -p nest_under=docker -o stdout
gives [0] mytag: [1551367861.024432224, {"docker"=>{"time"=>"time-value"}, "docker"=>{"stream"=>"stdout"}}]
, whereas
while :; do echo "{\"stream\":\"stdout\",\"time\":\"time-value\"}"; sleep 1; done | \
./fluent-bit -f 1 -i stdin -t mytag -F nest -m mytag -p operation=nest -p wildcard=time -p wildcard=stream -p nest_under=docker -o stdout
gives [0] mytag: [1551368111.465392923, {"docker"=>{"stream"=>"stdout", "time"=>"time-value"}}]
I would have expected both of these to give the same result (i.e. the second entry), but as long as there is a way to achieve what I want, I am also fine with the existing behaviour. :)
Regards,
Frode