logstash-filter-split 3.1.7 → 3.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3356dcc11862987712e4f9052ce4bc58be208f8f92d5cea69b23532e5b6ac603
4
- data.tar.gz: af3d58b3f1677c1fe0269673d5e37286cb2947d2ac705bfdfdce94fcc8a0c080
3
+ metadata.gz: 6319d3b850981cec3a8059fa148c2c1cc1b0d098d999abca2b83aa7f8ad2a237
4
+ data.tar.gz: cff19eb56064b141a79c88a0ec6e744919e1cc595aec35dec94fa4eccaee1d87
5
5
  SHA512:
6
- metadata.gz: f62920048aff417db5f8166cad3db2457fe5183b94e22ad9ec240a7c5dc858b5b2230e5b9fe79e25b86b5fc4362566f4265fdbbfe0bf573942e952a5bf8deefb
7
- data.tar.gz: a0af9cda51ef388c88d3d1102a3ffa74711559a1e3b53d9616acd550ae294a0b0118874d0c23d90ad0a58ecaa4ac94516d4ae03dcb9a4e39465f85146a0f40da
6
+ metadata.gz: 69c83c78ea32fbd59e9cea67300cc92e1af1de12a5830dd1a3dfdb3864fb121d4195cd26cb203ee706a2e5ba28b550379958de9d3ed09521c22de4211126ba7e
7
+ data.tar.gz: ef2435e8916ee8b0b2d6a83ef55b2ba748df259c0245f6bfbfdfd27c9372e76ef27ecf0bc92ff83680fda03ea549701f7b2a4910bed3b1921a83ac1c9b4355f5
@@ -1,5 +1,7 @@
1
+ ## 3.1.8 Fixed issue where @target optimization would stop event.remove(@field) from being called, which can be expensive with large split fields. [#40](https://github.com/logstash-plugins/logstash-filter-split/pull/40)
2
+
1
3
  ## 3.1.7
2
- - Fixed numeric values, optimized @target verification, cleanups and specs [36](https://github.com/logstash-plugins/logstash-filter-split/pull/36)
4
+ - Fixed numeric values, optimized @target verification, cleanups and specs [#36](https://github.com/logstash-plugins/logstash-filter-split/pull/36)
3
5
 
4
6
  ## 3.1.6
5
7
  - Fix crash on arrays with null values
@@ -59,15 +59,13 @@ class LogStash::Filters::Split < LogStash::Filters::Base
59
59
  config :target, :validate => :string
60
60
 
61
61
  def register
62
- # set @target to @field if not configured
63
- @target ||= @field
64
62
  end
65
63
 
66
64
  def filter(event)
67
65
  original_value = event.get(@field)
68
66
 
69
67
  if original_value.is_a?(Array)
70
- splits = target.nil? ? event.remove(@field) : original_value
68
+ splits = @target.nil? ? event.remove(@field) : original_value
71
69
  elsif original_value.is_a?(String)
72
70
  # Using -1 for 'limit' on String#split makes ruby not drop trailing empty
73
71
  # splits.
@@ -81,12 +79,15 @@ class LogStash::Filters::Split < LogStash::Filters::Base
81
79
  # Skip filtering if splitting this event resulted in only one thing found.
82
80
  return if splits.length == 1 && original_value.is_a?(String)
83
81
 
82
+ # set event_target to @field if not configured
83
+ event_target = @target.nil? ? @field : @target
84
+
84
85
  splits.each do |value|
85
86
  next if value.nil? || (value.is_a?(String) && value.empty?)
86
87
  @logger.debug? && @logger.debug("Split event", :value => value, :field => @field)
87
88
 
88
89
  event_split = event.clone
89
- event_split.set(@target, value)
90
+ event_split.set(event_target, value)
90
91
  filter_matched(event_split)
91
92
 
92
93
  # Push this new event onto the stack at the LogStash::FilterWorker
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
 
3
3
  s.name = 'logstash-filter-split'
4
- s.version = '3.1.7'
4
+ s.version = '3.1.8'
5
5
  s.licenses = ['Apache License (2.0)']
6
6
  s.summary = "Splits multi-line messages into distinct events"
7
7
  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"
@@ -12,6 +12,10 @@ describe LogStash::Filters::Split do
12
12
  }
13
13
  CONFIG
14
14
 
15
+ sample "big\n" do
16
+ insist { subject.get("message") } == 'big'
17
+ end
18
+
15
19
  sample "big\nbird\nsesame street" do
16
20
  insist { subject.length } == 3
17
21
  insist { subject[0].get("message") } == "big"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-filter-split
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.7
4
+ version: 3.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elastic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-04 00:00:00.000000000 Z
11
+ date: 2020-01-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement