json

The json parser plugin parses JSON logs. One JSON map per line.

Parameters

See Parse Section Configurations.

json_parser

type

default

available

version

enum

oj

oj, yajl, json

0.14.0

Sets the JSON parser. If you have a problem with the configured parser, check the other available parser types.

NOTE: If you want to enable json_parser oj by default, The oj gem must be installed separately. This is because oj gem is not required from fluentd by default. If oj gem is not installed, yajl is used as a fallback.

Here is a simple comparison:

  • oj: Faster json parser

  • yajl: Mainly for stream parsing

  • json: Standard bundled library

stream_buffer_size

type

default

version

integer

8192

1.0.0

Set the buffer size that Yajl will use when parsing streaming input.

See also: Method: Yajl::Parser#parse

time_type

json parser changes the default value of time_type to float. If you want to parse string field, set time_type and time_format like this:

# conf
@type json
time_type string
time_format %d/%b/%Y:%H:%M:%S %z
# record example
{"key":"value","time":"28/Feb/2013:12:00:00 +0900"}

See also parse Section article.

Example

This incoming event:

{"time":1362020400,"host":"192.168.0.1","size":777,"method":"PUT"}

is parsed as:

time:
1362020400 (2013-02-28 12:00:00 +0900)
record:
{
"host" : "192.168.0.1",
"size" : 777,
"method": "PUT",
}

If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.