No commit activity in last 3 years
No release in over 3 years
A Fluentd plugin to aggregate events based on a common field key
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.14
>= 0
~> 12.0
~> 3.0

Runtime

< 2, >= 0.14.10
 Project Readme

fluent-plugin-event-collector

Fluentd filter plugin to aggregate events based on a common field key.

Event Collector merges multiple Fluentd events into a single event with key fields concatenated. The terminating event should be designated with a special key value pair, however unfinished events will timeout and be emitted normally. For example with the key field message and the event key request_id, the two events:

{'request_id' => '123abc', 'foo' => 'bar', 'message' => 'Hello'}
{'request_id' => '123abc', 'foo' => 'baz', 'message' => 'World!', 'complete' => 'true'}

will be emitted as

{'request_id' => '123abc', 'foo' => 'bar', 'message' => 'Hello World!', 'complete' => 'true'}

All non-key fields follow a last write wins model, however multiple key fields are allowed.

Installation

RubyGems

$ gem install fluent-plugin-event-collector

Bundler

Add following line to your Gemfile:

gem "fluent-plugin-event-collector"

And then execute:

$ bundle

Configuration

  • event_key (string) (required): The event key used to identify groupings of events.
  • end_tag_key (string) (required): The event key used to identify the last event in a group.
  • end_tag_value (string) (required): The value in end_tag_key that identifies the last event in a group.
  • merge_fields (array) (optional): The event field keys to be concatenated across event groups.
    • Default value: [].
  • merge_field_delimeter (string) (optional): The delimeter to be added between merge field values.
    • Default value: .
  • event_timeout (integer) (optional): The timeout for events that have received no closing tag.
    • Default value: 30.

Copyright

  • Copyright(c) 2018- Adam Hart
  • License
    • Apache License, Version 2.0