The mutate filter allows you to do general mutations to fields. You can rename, remove, replace, and modify fields in your events.
TODO(sissel): Support regexp replacements like String#gsub ?
filter {
mutate {
add_field => ... # hash (optional), default: {}
add_tag => ... # array (optional), default: []
convert => ... # hash (optional)
remove => ... # array (optional)
rename => ... # hash (optional)
replace => ... # hash (optional)
tags => ... # array (optional), default: []
type => ... # string (optional), default: ""
}
}
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"
Convert a field's value to a different type, like turning a string to an integer. If the field value is an array, all members will be converted. If the field is a hash, no action will be taken.
Valid conversion targets are: integer, float, string
Example:
filter {
mutate {
convert => [ "fieldname", "integer" ]
}
}
Remove one or more fields.
Example:
filter {
mutate {
remove => [ "client" ] # Removes the 'client' field
}
}
Rename one or more fields.
Example:
filter {
mutate {
# Renames the 'HOSTORIP' field to 'client_ip'
rename => [ "HOSTORIP", "client_ip" ]
}
}
Replace a field with a new value. The new value can include %{foo} strings to help you build a new value from other parts of the event.
Example:
filter {
mutate {
replace => [ "@message", "%{source_host}: My new message" ]
}
}
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.