diff --git a/CHANGELOG.md b/CHANGELOG.md index bfdc4b1..65656c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 3.1.10 + - Added trace log to track event size expansion [#49](https://github.com/logstash-plugins/logstash-filter-split/pull/49) + ## 3.1.9 - [DOC] Added introductory statement to clarify purpose of the plugin [#43](https://github.com/logstash-plugins/logstash-filter-split/pull/43) diff --git a/lib/logstash/filters/split.rb b/lib/logstash/filters/split.rb index 07741da..ce2e395 100644 --- a/lib/logstash/filters/split.rb +++ b/lib/logstash/filters/split.rb @@ -81,19 +81,31 @@ def filter(event) # set event_target to @field if not configured event_target = @target.nil? ? @field : @target - + split_bytes = 0 + logger.trace? && logger.trace("Event being split into #{splits.size} events") + splits.each do |value| next if value.nil? || (value.is_a?(String) && value.empty?) - @logger.debug? && @logger.debug("Split event", :value => value, :field => @field) event_split = event.clone event_split.set(event_target, value) filter_matched(event_split) + logger.trace? && split_bytes += event_split.to_json.size + # Push this new event onto the stack at the LogStash::FilterWorker yield event_split end + + if logger.trace? + original_bytes = event.to_json.size + logger.trace("Estimated event size growth after split", + :original_bytes => original_bytes, + :split_bytes => split_bytes, + :growth_ratio => (split_bytes.to_f / original_bytes).round(2)) + end + # Cancel this event, we'll use the newly generated ones above. event.cancel end diff --git a/logstash-filter-split.gemspec b/logstash-filter-split.gemspec index 66997cf..85dbf5b 100644 --- a/logstash-filter-split.gemspec +++ b/logstash-filter-split.gemspec @@ -1,7 +1,7 @@ Gem::Specification.new do |s| s.name = 'logstash-filter-split' - s.version = '3.1.9' + s.version = '3.1.10' s.licenses = ['Apache License (2.0)'] s.summary = "Splits multi-line messages into distinct events" s.description = "This gem is a Logstash plugin required to be installed on top of the Logstash core pipeline using $LS_HOME/bin/logstash-plugin install gemname. This gem is not a stand-alone program"