Parses” string field in event records and mutates its
Configuration 🔗︎
ParserConfig 🔗︎
Variable Name |
Type |
Required |
Default |
Description |
key_name |
string |
No |
- |
Specify field name in the record to parse. If you leave empty the Container Runtime default will be used.
|
reserve_time |
bool |
No |
- |
Keep original event time in parsed result.
|
reserve_data |
bool |
No |
- |
Keep original key-value pair in parsed result.
|
remove_key_name_field |
bool |
No |
- |
Remove key_name field when parsing is succeeded
|
replace_invalid_sequence |
bool |
No |
- |
If true, invalid string is replaced with safe characters and re-parse it.
|
inject_key_prefix |
string |
No |
- |
Store parsed values with specified key name prefix.
|
hash_value_field |
string |
No |
- |
Store parsed values as a hash value in a field.
|
emit_invalid_record_to_error |
*bool |
No |
- |
Emit invalid record to @ERROR label. Invalid cases are: key not exist, format is not matched, unexpected error
|
parse |
ParseSection |
No |
- |
Parse Section
|
parsers |
[]ParseSection |
No |
- |
Deprecated, use parse instead
|
Parse Section 🔗︎
Variable Name |
Type |
Required |
Default |
Description |
type |
string |
No |
- |
Parse type: apache2, apache_error, nginx, syslog, csv, tsv, ltsv, json, multiline, none, logfmt
|
expression |
string |
No |
- |
Regexp expression to evaluate
|
time_key |
string |
No |
- |
Specify time field for event time. If the event doesn’t have this field, current time is used.
|
null_value_pattern |
string |
No |
- |
Specify null value pattern.
|
null_empty_string |
bool |
No |
- |
If true, empty string field is replaced with nil
|
estimate_current_event |
bool |
No |
- |
If true, use Fluent::EventTime.now(current time) as a timestamp when time_key is specified.
|
keep_time_key |
bool |
No |
- |
If true, keep time field in the record.
|
types |
string |
No |
- |
Types casting the fields to proper types example: field1:type, field2:type
|
time_format |
string |
No |
- |
Process value using specified format. This is available only when time_type is string
|
time_type |
string |
No |
string |
Parse/format value according to this type available values: float, unixtime, string
|
local_time |
bool |
No |
true |
Ff true, use local time. Otherwise, UTC is used. This is exclusive with utc.
|
utc |
bool |
No |
false |
If true, use UTC. Otherwise, local time is used. This is exclusive with localtime
|
timezone |
string |
No |
nil |
Use specified timezone. one can parse/format the time value in the specified timezone.
|
format |
string |
No |
- |
Only available when using type: multi_format
|
format_firstline |
string |
No |
- |
Only available when using type: multi_format
|
delimiter |
string |
No |
“\t” |
Only available when using type: ltsv
|
delimiter_pattern |
string |
No |
- |
Only available when using type: ltsv
|
label_delimiter |
string |
No |
“:” |
Only available when using type: ltsv
|
multiline |
[]string |
No |
- |
The multiline parser plugin parses multiline logs.
|
patterns |
[]SingleParseSection |
No |
- |
Only available when using type: multi_format Parse Section
|
Parse Section (single) 🔗︎
Variable Name |
Type |
Required |
Default |
Description |
type |
string |
No |
- |
Parse type: apache2, apache_error, nginx, syslog, csv, tsv, ltsv, json, multiline, none, logfmt
|
expression |
string |
No |
- |
Regexp expression to evaluate
|
time_key |
string |
No |
- |
Specify time field for event time. If the event doesn’t have this field, current time is used.
|
null_value_pattern |
string |
No |
- |
Specify null value pattern.
|
null_empty_string |
bool |
No |
- |
If true, empty string field is replaced with nil
|
estimate_current_event |
bool |
No |
- |
If true, use Fluent::EventTime.now(current time) as a timestamp when time_key is specified.
|
keep_time_key |
bool |
No |
- |
If true, keep time field in the record.
|
types |
string |
No |
- |
Types casting the fields to proper types example: field1:type, field2:type
|
time_format |
string |
No |
- |
Process value using specified format. This is available only when time_type is string
|
time_type |
string |
No |
string |
Parse/format value according to this type available values: float, unixtime, string
|
local_time |
bool |
No |
true |
Ff true, use local time. Otherwise, UTC is used. This is exclusive with utc.
|
utc |
bool |
No |
false |
If true, use UTC. Otherwise, local time is used. This is exclusive with localtime
|
timezone |
string |
No |
nil |
Use specified timezone. one can parse/format the time value in the specified timezone.
|
format |
string |
No |
- |
Only available when using type: multi_format
|
Example Parser
filter configurations 🔗︎
apiVersion: logging.banzaicloud.io/v1beta1
kind: Flow
metadata:
name: demo-flow
spec:
filters:
- parser:
remove_key_name_field: true
reserve_data: true
parse:
type: multi_format
patterns:
- format: nginx
- format: regexp
expression: /foo/
- format: none
selectors: {}
localOutputRefs:
- demo-output
Fluentd Config Result 🔗︎
<filter **>
@type parser
@id test_parser
key_name message
remove_key_name_field true
reserve_data true
<parse>
@type multi_format
<pattern>
format nginx
</pattern>
<pattern>
expression /foo/
format regexp
</pattern>
<pattern>
format none
</pattern>
</parse>
</filter>