The new way Output Delegators work is that events flow from:
OutputDelegator -> OutputDelegatorStrategy -> Output
The output delegator handles all the common denominator tasks (like metrics) and
a few other things. The OutputDelegatorStrategy handles concurrency and Output instantiation.
This is a significant improvement and simplification over the past where we used mixins and dynamic method
redifinition.
This removes the concept of plugin 'unique_names' and replaces it with the 'id'.
Also consistently autogenerates plugin IDs based on a given config file using SHA1 hashing.
Fixes#5752
This is done by providing a default data.home in tmp for environments other than a packaged logstash distro.
This is a hack and should be replaced by something better in the future.
Fixes#5706
* add batch object and queue client support to pipeline
* post review updates
* add note about inflight_batches to pipeline and wrapped_sync_queue
* remove more whitespace changes
* remove more whitespace changes
* rename add to merge + refactor event fill on ReadBatch.new
* better handle the initial filling of the batch, handle merging better
Fix an issue when running tests of the plugin in isolation, no default
metric was created and the metric was nil.
This commit change the behavior to always return a `NullMetric` when
plugin instances are created outside of the pipeline.
Added tests to cover all the base class of plugin that can record
metric.
Fixes#5542
The current test where only checking if the `NullMetric` Interface was
matching the original metric interface, this PR add more test around the
actual methods and fix an issue with `decrement` using too much
arguments in the context of a namespaced metric.
The test were also move into a shared example to be used in both the `NullMetric`
and the `NamedspacedMetric`.
Also the NullMetric class will no use the same validation for keys as the namespaced class and will
reject empty or nil keys.
Fixes#5545
Purpose:
* manage releases through a minimum number of rake tasks
* simplify building of snapshot builds
* create staged artifacts, candidates for releases, that required no changes to become releases
* this means the snapshot release process will not involve publishing gems, therefore:
* the gem artifacts should only be published to rubygems as a final artifact, at the time of GA
Changes:
* release artifacts no longer depend on gems of core components
* all core components are used locally AS-IS to minimize code changes between snapshot, RC and GA
* `versions.yml` describes the versions of all logstash parts and package
* `rake version:set[version]` manage the yaml file and push the changes to the gemspecs/version.rb files
* `rake version:set_plugin_api[version]` manage the yaml file and push the changes to the gemspecs/version.rb files
* `rake artifact:all` generates SNAPSHOT artifacts: tar.gz, zip, rpm, deb
* `RELEASE=1 rake artifact:all` creates release candidate artifacts + 4 gems: logstash-core, logstash-core-event, logstash-core-event-java and logstash-core-plugin-api
implements #5416 and #5414Fixes#5460