# fluent-plugin-concat [![Build Status](https://travis-ci.org/fluent-plugins-nursery/fluent-plugin-concat.svg?branch=master)](https://travis-ci.org/fluent-plugins-nursery/fluent-plugin-concat) Fluentd Filter plugin to concatenate multiline log separated in multiple events. ## Requirements | fluent-plugin-concat | fluentd | ruby | |----------------------|------------|--------| | >= 2.0.0 | >= v0.14.0 | >= 2.1 | | < 2.0.0 | >= v0.12.0 | >= 1.9 | ## Installation Add this line to your application's Gemfile: ```ruby gem 'fluent-plugin-concat' ``` And then execute: $ bundle Or install it yourself as: $ gem install fluent-plugin-concat ## Configuration **key** (required) The key for part of multiline log. **separator** The separator of lines. Default value is `"\n"`. **n\_lines** The number of lines. This is exclusive with `multiline_start_regex`. **multiline\_start\_regexp** The regexp to match beginning of multiline. This is exclusive with `n_lines.` **multiline\_end\_regexp** The regexp to match ending of multiline. **continuous\_line_\_regexp** The regexp to match continuous lines. **stream\_identity\_key** The key to determine which stream an event belongs to. **flush\_interval** The number of seconds after which the last received event log will be flushed. If specified 0, wait for next line forever. **use\_first\_timestamp** Use timestamp of first record when buffer is flushed. ## Usage Every 10 events will be concatenated into one event. ```aconf @type concat key message n_lines 10 ``` Specify first line of multiline by regular expression. ```aconf @type concat key message multiline_start_regexp /^Start/ ``` You can handle timeout events and remaining buffers on shutdown this plugin. ```aconf ``` Handle timeout log lines the same as normal logs. ```aconf @type concat key message multiline_start_regexp /^Start/ flush_interval 5 timeout_label @NORMAL @type relabel @label @NORMAL ``` ## Contributing 1. Fork it 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create new Pull Request ## License The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).