logstash-codec-multiline 2.0.3 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +3 -0
 - data/lib/logstash/codecs/identity_map_codec.rb +9 -2
 - data/logstash-codec-multiline.gemspec +2 -2
 - data/spec/codecs/identity_map_codec_spec.rb +20 -5
 - metadata +13 -13
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: cd43c9171bdc01db5f0d381b4c95994e7b6073d4
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 07230a73ec9e7cb9ccddb94921d540323e4d0e86
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 2aec937d4fdf0bbde23c38dee5544198ee8bb5c89efe146bf96b24d4e77bf0f004ba197508168e37f700bd8ebcd913a4719a766b7ce7c7c50ce526b9f9d83623
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 3174e737bc7922cbafec8cda5f1ee85ec9c1691e6918e5e61ab20da35167b6c9969147a4ff869e52057a8385190edd2058699fbc636bf5e69f3b7ccba8a60983
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| 
         @@ -101,7 +101,8 @@ module LogStash module Codecs class IdentityMapCodec 
     | 
|
| 
       101 
101 
     | 
    
         
             
                @max_identities = MAX_IDENTITIES
         
     | 
| 
       102 
102 
     | 
    
         
             
                @evict_timeout = EVICT_TIMEOUT
         
     | 
| 
       103 
103 
     | 
    
         
             
                @cleaner = MapCleaner.new(self, CLEANER_INTERVAL)
         
     | 
| 
       104 
     | 
    
         
            -
                @decode_block = lambda {|*| }
         
     | 
| 
      
 104 
     | 
    
         
            +
                @decode_block = lambda {|*| true }
         
     | 
| 
      
 105 
     | 
    
         
            +
                @eviction_block = nil
         
     | 
| 
       105 
106 
     | 
    
         
             
              end
         
     | 
| 
       106 
107 
     | 
    
         | 
| 
       107 
108 
     | 
    
         
             
              # ==============================================
         
     | 
| 
         @@ -126,6 +127,12 @@ module LogStash module Codecs class IdentityMapCodec 
     | 
|
| 
       126 
127 
     | 
    
         
             
                @cleaner = MapCleaner.new(self, interval.to_i)
         
     | 
| 
       127 
128 
     | 
    
         
             
                self
         
     | 
| 
       128 
129 
     | 
    
         
             
              end
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
              # used to add  a non-default eviction block
         
     | 
| 
      
 132 
     | 
    
         
            +
              def eviction_block(block)
         
     | 
| 
      
 133 
     | 
    
         
            +
                @eviction_block = block
         
     | 
| 
      
 134 
     | 
    
         
            +
                self
         
     | 
| 
      
 135 
     | 
    
         
            +
              end
         
     | 
| 
       129 
136 
     | 
    
         
             
              # end Constructional/builder methods
         
     | 
| 
       130 
137 
     | 
    
         
             
              # ==============================================
         
     | 
| 
       131 
138 
     | 
    
         | 
| 
         @@ -184,7 +191,7 @@ module LogStash module Codecs class IdentityMapCodec 
     | 
|
| 
       184 
191 
     | 
    
         
             
                # contents should not mutate during this call
         
     | 
| 
       185 
192 
     | 
    
         
             
                identity_map.delete_if do |identity, compo|
         
     | 
| 
       186 
193 
     | 
    
         
             
                  if (flag = compo.timeout <= cut_off)
         
     | 
| 
       187 
     | 
    
         
            -
                    compo.codec.flush( 
     | 
| 
      
 194 
     | 
    
         
            +
                    compo.codec.flush(&(@eviction_block || @decode_block))
         
     | 
| 
       188 
195 
     | 
    
         
             
                  end
         
     | 
| 
       189 
196 
     | 
    
         
             
                  flag
         
     | 
| 
       190 
197 
     | 
    
         
             
                end
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
              s.name            = 'logstash-codec-multiline'
         
     | 
| 
       4 
     | 
    
         
            -
              s.version         = '2.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              s.version         = '2.0.4'
         
     | 
| 
       5 
5 
     | 
    
         
             
              s.licenses        = ['Apache License (2.0)']
         
     | 
| 
       6 
6 
     | 
    
         
             
              s.summary         = "The multiline codec will collapse multiline messages and merge them into a single event."
         
     | 
| 
       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/plugin install gemname. This gem is not a stand-alone program"
         
     | 
| 
         @@ -20,7 +20,7 @@ Gem::Specification.new do |s| 
     | 
|
| 
       20 
20 
     | 
    
         
             
              s.metadata = { "logstash_plugin" => "true", "logstash_group" => "codec" }
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
              # Gem dependencies
         
     | 
| 
       23 
     | 
    
         
            -
              s.add_runtime_dependency "logstash-core", ">= 2.0.0 
     | 
| 
      
 23 
     | 
    
         
            +
              s.add_runtime_dependency "logstash-core", ">= 2.0.0", "< 3.0.0"
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
       25 
25 
     | 
    
         
             
              s.add_runtime_dependency 'logstash-patterns-core'
         
     | 
| 
       26 
26 
     | 
    
         
             
              s.add_runtime_dependency 'jls-grok', '~> 0.11.1'
         
     | 
| 
         @@ -18,7 +18,7 @@ class IdentityMapCodecTracer 
     | 
|
| 
       18 
18 
     | 
    
         
             
              def clone() self.class.new; end
         
     | 
| 
       19 
19 
     | 
    
         
             
              def decode(data) @tracer.push [:decode, data]; end
         
     | 
| 
       20 
20 
     | 
    
         
             
              def encode(event) @tracer.push [:encode, event]; end
         
     | 
| 
       21 
     | 
    
         
            -
              def flush(&block) @tracer.push [:flush,  
     | 
| 
      
 21 
     | 
    
         
            +
              def flush(&block) @tracer.push [:flush, block.call]; end
         
     | 
| 
       22 
22 
     | 
    
         
             
              def close() @tracer.push [:close, true]; end
         
     | 
| 
       23 
23 
     | 
    
         
             
              def logger() @logger ||= LogTracer.new; end
         
     | 
| 
       24 
24 
     | 
    
         | 
| 
         @@ -175,7 +175,7 @@ describe LogStash::Codecs::IdentityMapCodec do 
     | 
|
| 
       175 
175 
     | 
    
         
             
                      sleep(1.2)
         
     | 
| 
       176 
176 
     | 
    
         
             
                      demuxer.decode(Object.new, "stream2")
         
     | 
| 
       177 
177 
     | 
    
         
             
                      expect(demuxer.identity_count).to eq(limit)
         
     | 
| 
       178 
     | 
    
         
            -
                      expect { demuxer.decode(Object.new, "stream4") }.not_to raise_error
         
     | 
| 
      
 178 
     | 
    
         
            +
                      expect { demuxer.decode(Object.new, "stream4"){|*| 42 } }.not_to raise_error
         
     | 
| 
       179 
179 
     | 
    
         
             
                    end
         
     | 
| 
       180 
180 
     | 
    
         
             
                  end
         
     | 
| 
       181 
181 
     | 
    
         
             
                end
         
     | 
| 
         @@ -195,12 +195,27 @@ describe LogStash::Codecs::IdentityMapCodec do 
     | 
|
| 
       195 
195 
     | 
    
         
             
              end
         
     | 
| 
       196 
196 
     | 
    
         | 
| 
       197 
197 
     | 
    
         
             
              describe "codec eviction" do
         
     | 
| 
       198 
     | 
    
         
            -
                let(:demuxer) { described_class.new(codec).evict_timeout(1).cleaner_interval(1) }
         
     | 
| 
       199 
198 
     | 
    
         
             
                context "when an identity has become stale" do
         
     | 
| 
      
 199 
     | 
    
         
            +
                  let(:demuxer) { described_class.new(codec).evict_timeout(1).cleaner_interval(1) }
         
     | 
| 
       200 
200 
     | 
    
         
             
                  it "the cleaner evicts the codec and flushes it first" do
         
     | 
| 
       201 
     | 
    
         
            -
                    demuxer.decode(Object.new, "stream1")
         
     | 
| 
      
 201 
     | 
    
         
            +
                    demuxer.decode(Object.new, "stream1"){|*| 42}
         
     | 
| 
      
 202 
     | 
    
         
            +
                    sleep(2.1)
         
     | 
| 
      
 203 
     | 
    
         
            +
                    expect(codec.trace_for(:flush)).to eq(42)
         
     | 
| 
      
 204 
     | 
    
         
            +
                    expect(demuxer.identity_map.keys).not_to include("stream1")
         
     | 
| 
      
 205 
     | 
    
         
            +
                  end
         
     | 
| 
      
 206 
     | 
    
         
            +
                end
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
                context "when an identity has become stale and an evition block is set" do
         
     | 
| 
      
 209 
     | 
    
         
            +
                  let(:demuxer) do
         
     | 
| 
      
 210 
     | 
    
         
            +
                    described_class.new(codec)
         
     | 
| 
      
 211 
     | 
    
         
            +
                    .evict_timeout(1)
         
     | 
| 
      
 212 
     | 
    
         
            +
                    .cleaner_interval(1)
         
     | 
| 
      
 213 
     | 
    
         
            +
                    .eviction_block(lambda {|*| 24} )
         
     | 
| 
      
 214 
     | 
    
         
            +
                  end
         
     | 
| 
      
 215 
     | 
    
         
            +
                  it "the cleaner evicts the codec and flushes it first using the eviction_block" do
         
     | 
| 
      
 216 
     | 
    
         
            +
                    demuxer.decode(Object.new, "stream1"){|*| 42}
         
     | 
| 
       202 
217 
     | 
    
         
             
                    sleep(2.1)
         
     | 
| 
       203 
     | 
    
         
            -
                    expect(codec.trace_for(:flush)).to  
     | 
| 
      
 218 
     | 
    
         
            +
                    expect(codec.trace_for(:flush)).to eq(24)
         
     | 
| 
       204 
219 
     | 
    
         
             
                    expect(demuxer.identity_map.keys).not_to include("stream1")
         
     | 
| 
       205 
220 
     | 
    
         
             
                  end
         
     | 
| 
       206 
221 
     | 
    
         
             
                end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: logstash-codec-multiline
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.0.4
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Elastic
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-11- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-11-19 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: logstash-core
         
     | 
| 
         @@ -16,7 +16,7 @@ dependencies: 
     | 
|
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
17 
     | 
    
         
             
                - - '>='
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: 2.0.0 
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 2.0.0
         
     | 
| 
       20 
20 
     | 
    
         
             
                - - <
         
     | 
| 
       21 
21 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       22 
22 
     | 
    
         
             
                    version: 3.0.0
         
     | 
| 
         @@ -24,7 +24,7 @@ dependencies: 
     | 
|
| 
       24 
24 
     | 
    
         
             
                requirements:
         
     | 
| 
       25 
25 
     | 
    
         
             
                - - '>='
         
     | 
| 
       26 
26 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       27 
     | 
    
         
            -
                    version: 2.0.0 
     | 
| 
      
 27 
     | 
    
         
            +
                    version: 2.0.0
         
     | 
| 
       28 
28 
     | 
    
         
             
                - - <
         
     | 
| 
       29 
29 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       30 
30 
     | 
    
         
             
                    version: 3.0.0
         
     | 
| 
         @@ -78,18 +78,18 @@ executables: [] 
     | 
|
| 
       78 
78 
     | 
    
         
             
            extensions: []
         
     | 
| 
       79 
79 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       80 
80 
     | 
    
         
             
            files:
         
     | 
| 
       81 
     | 
    
         
            -
            - lib/logstash/codecs/identity_map_codec.rb
         
     | 
| 
       82 
     | 
    
         
            -
            - lib/logstash/codecs/multiline.rb
         
     | 
| 
       83 
     | 
    
         
            -
            - spec/codecs/multiline_spec.rb
         
     | 
| 
       84 
     | 
    
         
            -
            - spec/codecs/identity_map_codec_spec.rb
         
     | 
| 
       85 
     | 
    
         
            -
            - spec/supports/helpers.rb
         
     | 
| 
       86 
     | 
    
         
            -
            - logstash-codec-multiline.gemspec
         
     | 
| 
       87 
     | 
    
         
            -
            - README.md
         
     | 
| 
       88 
81 
     | 
    
         
             
            - CHANGELOG.md
         
     | 
| 
       89 
82 
     | 
    
         
             
            - CONTRIBUTORS
         
     | 
| 
       90 
83 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       91 
84 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       92 
85 
     | 
    
         
             
            - NOTICE.TXT
         
     | 
| 
      
 86 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 87 
     | 
    
         
            +
            - lib/logstash/codecs/identity_map_codec.rb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - lib/logstash/codecs/multiline.rb
         
     | 
| 
      
 89 
     | 
    
         
            +
            - logstash-codec-multiline.gemspec
         
     | 
| 
      
 90 
     | 
    
         
            +
            - spec/codecs/identity_map_codec_spec.rb
         
     | 
| 
      
 91 
     | 
    
         
            +
            - spec/codecs/multiline_spec.rb
         
     | 
| 
      
 92 
     | 
    
         
            +
            - spec/supports/helpers.rb
         
     | 
| 
       93 
93 
     | 
    
         
             
            homepage: http://www.elastic.co/guide/en/logstash/current/index.html
         
     | 
| 
       94 
94 
     | 
    
         
             
            licenses:
         
     | 
| 
       95 
95 
     | 
    
         
             
            - Apache License (2.0)
         
     | 
| 
         @@ -112,11 +112,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       112 
112 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       113 
113 
     | 
    
         
             
            requirements: []
         
     | 
| 
       114 
114 
     | 
    
         
             
            rubyforge_project:
         
     | 
| 
       115 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 115 
     | 
    
         
            +
            rubygems_version: 2.4.8
         
     | 
| 
       116 
116 
     | 
    
         
             
            signing_key:
         
     | 
| 
       117 
117 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       118 
118 
     | 
    
         
             
            summary: The multiline codec will collapse multiline messages and merge them into a single event.
         
     | 
| 
       119 
119 
     | 
    
         
             
            test_files:
         
     | 
| 
       120 
     | 
    
         
            -
            - spec/codecs/multiline_spec.rb
         
     | 
| 
       121 
120 
     | 
    
         
             
            - spec/codecs/identity_map_codec_spec.rb
         
     | 
| 
      
 121 
     | 
    
         
            +
            - spec/codecs/multiline_spec.rb
         
     | 
| 
       122 
122 
     | 
    
         
             
            - spec/supports/helpers.rb
         
     |