JSON filter. Takes a field that contains JSON and expands it into an actual datastructure.
filter {
json {
/[A-Za-z0-9_-]+/ => ... # string (optional)
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
tags => ... # array (optional), default: []
type => ... # string (optional), default: ""
}
}
Config for json is: source: dest JSON in the value of the source field will be expanded into a datastructure in the "dest" field. Note: if the "dest" field already exists, it will be overridden.
If this filter is successful, add any arbitrary fields to this event. Example:
filter {
myfilter {
add_field => [ "sample", "Hello world, from %{@source}" ]
}
}
On success, myfilter will then add field 'sample' with the value above and the %{@source} piece replaced with that value from the event.
If this filter is successful, add arbitrary tags to the event. Tags can be dynamic and include parts of the event using the %{field} syntax. Example:
filter {
myfilter {
add_tag => [ "foo_%{somefield}" ]
}
}
If the event has field "somefield" == "hello" this filter, on success, would add a tag "foo_hello"
Only handle events with all of these tags. Note that if you specify a type, the event must also match that type. Optional.
The type to act on. If a type is given, then this filter will only act on messages with the same type. See any input plugin's "type" attribute for more. Optional.