csv
The csv parser plugin parses CSV format.
Parameters
See Parse Section Configurations.
keys
| type | default | version |
|---|---|---|
| array of string | required parameter | 0.14.9 |
The array of names for fields on each line.
delimiter
| type | default | version |
|---|---|---|
| string | , | 0.14.2 |
The delimiter (character or string) separating CSV values.
parser_type
| type | default | available values | version |
|---|---|---|---|
| enum | normal | normal/fast | 1.7.0 |
The parser type used to parse the log line.
normaluses Ruby'smethod.
fastuses its own lightweight implementation. This parser is several timesfaster than
normalbut it supports only typical patterns.
Supported CSV formats by fast:
# non-quoted
value1,value2,value3,value4,value5
# quoted
"value1","val,ue2","va,lu,e3","val ue4",""
# escaped
"message","mes""sage","""message""",,""""""
# mixed
message,"mes,sage","me,ssa,ge",mess age,""
If your CSV format is not matched with the above patterns, use normal parser instead.
Example
With this configuration:
<parse>
@type csv
keys time,host,req_id,user
time_key time
</parse>
This incoming event:
2013/02/28 12:00:00,192.168.0.1,111,-
is parsed as:
time:
1362020400 (2013/02/28/ 12:00:00)
record:
{
"host" : "192.168.0.1",
"req_id" : "111",
"user" : "-"
}
If you set null_value_pattern '-' in the configuration, user field becomes nil instead of "-".