fluent-plugin-parameterized-path

Build Status

This plugin generates from the value of the specified field the path of the file to be output.

Installation

Add this line to your application's Gemfile:

gem 'fluent-plugin-parameterized-path'

And then execute:

$ bundle

Or install it yourself as:

$ gem install fluent-plugin-parameterized-path

Configuration

path_prefix (required)

Path prefix of output files.

path_key (required)

Set the key of the field where part of the path is stored.

append

If set to true, append the data to the file. The default is false.

compress

If set to gzip, the output file will be compressed. The default is nil.

format

see http://docs.fluentd.org/articles/formatter-plugin-overview. The default is out_file.

other

This plugin inherit the Fluent::TimeSlicedOutput class. So, you can set the configurations of the Fluent::TimeSlicedOutput class. see http://docs.fluentd.org/articles/output-plugin-overview#time-sliced-output-parameters

Examples

<match dummy>
    @type parameterized_path
    path_prefix /var/log/subs
    path_key path_is_here
</match>

If your inputs is

{"path_is_here": "/oh/my/log", "message": "hello"}
{"path_is_here": "path/to/file", "message": "world"}

File is created as follows

$ find /var/log/subs/**/*.log
/var/log/subs/oh/my/log.2016121314.log
/var/log/subs/path/to/file.2016121314.log

$ cat /var/log/subs/oh/my/log.2016121314.log
2016-12-13T14:15:16[TAB]dummy[TAB]{"message":"hello"}

$ cat /var/log/subs/path/to/file.2016121314.log
2016-12-13T14:15:17[TAB]dummy[TAB]{"message":"world"}

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/msysyamamoto/fluent-plugin-parameterized-path. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.