- new feature: add ability to generate new event during code execution (#116)
- bugfix: remove 'default_timeout' at pipeline level (fix #112)
- ci: update travis ci configuration
- bugfix: fix inactivity timeout feature when processing old logs (PR #103, thanks @jdratlif for his contribution!)
- docs: fix several typos in documentation
- docs: enhance example 4 documentation
- ci: enhance plugin continuous integration
- new feature: add ability to dynamically define a custom
timeout
orinactivity_timeout
incode
block (fix issues #91 and #92) - new feature: add meta informations available in
code
block throughmap_meta
variable - new feature: add Logstash metrics, specific to aggregate plugin: aggregate_maps, pushed_events, task_timeouts, code_errors, timeout_code_errors
- new feature: validate at startup that
map_action
option equals to 'create', 'update' or 'create_or_update'
- new feature: add 'timeout_timestamp_field' option (fix issue #81)
When set, this option lets to compute timeout based on event timestamp field (and not system time).
It's particularly useful when processing old logs.
- bugfix: fix synchronisation issue at Logstash shutdown (issue #75)
- docs: update gemspec summary
- new feature: add support for multiple pipelines (for Logstash 6.0+)
aggregate maps, timeout options, and aggregate_maps_path are now stored per pipeline.
each pipeline is independant. - docs: fix break lines in documentation examples
- bugfix: fix a NPE issue at Logstash 6.0 shutdown
- docs: remove all redundant documentation in aggregate.rb (now only present in docs/index.asciidoc)
- docs: fix some documentation issues
- docs: remove incorrectly coded, redundant links
- docs: bump patch level for doc build
- new feature: add 'inactivity_timeout' option.
Events for a giventask_id
will be aggregated for as long as they keep arriving within the definedinactivity_timeout
option - the inactivity timeout is reset each time a new event happens. On the contrary,timeout
is never reset and happens aftertimeout
seconds since aggregation map creation.
- bugfix: fix 'aggregate_maps_path' load (issue #62). Re-start of Logstash died when no data were provided in 'aggregate_maps_path' file for some aggregate task_id patterns
- enhancement: at Logstash startup, check that 'task_id' option contains a field reference expression (else raise error)
- docs: enhance examples
- docs: precise that tasks are tied to their task_id pattern, even if they have same task_id value
- enhancement: when final flush occurs (just before Logstash shutdown), add
_aggregatefinalflush
tag on generated timeout events - bugfix: when final flush occurs (just before Logstash shutdown), push last aggregate map as event (if push_previous_map_as_event=true)
- bugfix: fix 'timeout_task_id_field' feature when push_previous_map_as_event=true
- bugfix: fix aggregate_maps_path feature (bug since v2.4.0)
- internal: add debug logging
- internal: refactor flush management static variables
- new feature: add compatibility with Logstash 5
- breaking: need Logstash 2.4 or later
- new feature: You can now define timeout options per task_id pattern (fix issue #42)
timeout options are :timeout, timeout_code, push_map_as_event_on_timeout, push_previous_map_as_event, timeout_task_id_field, timeout_tags
- validation: a configuration error is thrown at startup if you define any timeout option on several aggregate filters for the same task_id pattern
- breaking: if you use
aggregate_maps_path
option, storage format has changed. So you have to deleteaggregate_maps_path
file before starting Logstash
- new feature: Add new option "timeout_tags" so that you can add tags to generated timeout events
- new feature: Add new option "push_map_as_event_on_timeout" so that when a task timeout happens the aggregation map can be yielded as a new event
- new feature: Add new option "timeout_code" which takes the timeout event populated with the aggregation map and executes code on it. This works for "push_map_as_event_on_timeout" as well as "push_previous_map_as_event"
- new feature: Add new option "timeout_task_id_field" which is used to map the task_id on timeout events.
- new feature: add new option "push_previous_map_as_event" so that each time aggregate plugin detects a new task id, it pushes previous aggregate map as a new logstash event
- bugfix: clarify default timeout behaviour : by default, timeout is 1800s
- bugfix: when "aggregate_maps_path" option is defined in more than one aggregate filter, raise a Logstash::ConfigurationError
- bugfix: add support for logstash hot reload feature
- new feature: add new option "aggregate_maps_path" so that aggregate maps can be stored at logstash shutdown and reloaded at logstash startup
- internal,deps: Depend on logstash-core-plugin-api instead of logstash-core, removing the need to mass update plugins on major releases of logstash
- breaking: need Logstash 2.3 or later
- internal,deps: New dependency requirements for logstash-core for the 5.0 release
- bugfix: fix issue #10 : numeric task_id is now well processed
- bugfix: fix issue #5 : when code call raises an exception, the error is logged and the event is tagged '_aggregateexception'. It avoids logstash crash.
- internal: Plugins were updated to follow the new shutdown semantic, this mainly allows Logstash to instruct input plugins to terminate gracefully, instead of using Thread.raise on the plugins' threads.
Ref: elastic/logstash#3895 - internal,deps: Dependency on logstash-core update to 2.0
- breaking: remove "milestone" method call which is deprecated in logstash 1.5, break compatibility with logstash 1.4
- internal,test: enhanced tests using 'expect' command
- docs: add a second example in documentation
- compatible with logstash 1.4
- first version available on github