logstash-codec-multiline 2.0.6 → 2.0.7
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/Gemfile +2 -1
- data/lib/logstash/codecs/auto_flush.rb +43 -7
- data/lib/logstash/codecs/multiline.rb +4 -5
- data/logstash-codec-multiline.gemspec +1 -1
- metadata +30 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36df6112f2d0e3f3d6b3d0481a72e5250fae5352
|
4
|
+
data.tar.gz: b86e58bbb8f62680e7ab478adc0d75a3d61d6530
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afe492266d2d77c9946ff76ad71e755f8d03a655222f92673f70d0804b99543edd82dbb3365674f1f640036eb24cb42c6f3b65d6bea290378e959de6f6356bfe
|
7
|
+
data.tar.gz: e053998e3802437a06a82b5997f28c8bc4983b80c936a1d9bbbe3b81a4a99be11f6086dac0f01a73c69fb2770728ee6ef030f807714c226a7e570815d11c49d2
|
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
@@ -7,20 +7,48 @@ module LogStash module Codecs class AutoFlush
|
|
7
7
|
@stopped = Concurrent::AtomicBoolean.new # false by default
|
8
8
|
end
|
9
9
|
|
10
|
+
# def start
|
11
|
+
# # can't start if pipeline is stopping
|
12
|
+
# return self if stopped?
|
13
|
+
# if pending?
|
14
|
+
# @task.cancel
|
15
|
+
# create_task
|
16
|
+
# elsif finished?
|
17
|
+
# create_task
|
18
|
+
# # else the task is executing
|
19
|
+
# end
|
20
|
+
# self
|
21
|
+
# end
|
22
|
+
|
10
23
|
def start
|
11
24
|
# can't start if pipeline is stopping
|
12
25
|
return self if stopped?
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
#
|
26
|
+
|
27
|
+
if pending? && @task.cancel
|
28
|
+
create_task
|
29
|
+
return self
|
30
|
+
end
|
31
|
+
# maybe we have a timing edge case
|
32
|
+
# where pending? was true but cancel failed
|
33
|
+
# because the task started running
|
34
|
+
if finished?
|
35
|
+
create_task
|
36
|
+
return self
|
20
37
|
end
|
38
|
+
# else the task is executing
|
39
|
+
# wait for task to complete
|
40
|
+
# flush could feasibly block on queue access
|
41
|
+
@task.value
|
42
|
+
create_task
|
21
43
|
self
|
22
44
|
end
|
23
45
|
|
46
|
+
def create_task
|
47
|
+
@task = Concurrent::ScheduledTask.execute(@interval) do
|
48
|
+
@mc.auto_flush()
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
24
52
|
def finished?
|
25
53
|
return true if @task.nil?
|
26
54
|
@task.fulfilled?
|
@@ -36,6 +64,10 @@ module LogStash module Codecs class AutoFlush
|
|
36
64
|
|
37
65
|
def stop
|
38
66
|
@stopped.make_true
|
67
|
+
cancel
|
68
|
+
end
|
69
|
+
|
70
|
+
def cancel
|
39
71
|
@task.cancel if pending?
|
40
72
|
end
|
41
73
|
end
|
@@ -63,4 +95,8 @@ class AutoFlushUnset
|
|
63
95
|
def stop
|
64
96
|
self
|
65
97
|
end
|
98
|
+
|
99
|
+
def cancel
|
100
|
+
self
|
101
|
+
end
|
66
102
|
end end end
|
@@ -129,7 +129,7 @@ module LogStash module Codecs class Multiline < LogStash::Codecs::Base
|
|
129
129
|
|
130
130
|
# The accumulation of multiple lines will be converted to an event when either a
|
131
131
|
# matching new line is seen or there has been no new data appended for this time
|
132
|
-
# auto_flush_interval. No default. If unset, no auto_flush
|
132
|
+
# auto_flush_interval. No default. If unset, no auto_flush. Units: seconds
|
133
133
|
config :auto_flush_interval, :validate => :number
|
134
134
|
|
135
135
|
public
|
@@ -195,10 +195,7 @@ module LogStash module Codecs class Multiline < LogStash::Codecs::Base
|
|
195
195
|
|
196
196
|
def buffer(text)
|
197
197
|
@buffer_bytes += text.bytesize
|
198
|
-
@buffer.push(text)
|
199
|
-
# do start but preserve the return value
|
200
|
-
auto_flush_runner.start
|
201
|
-
end
|
198
|
+
@buffer.push(text)
|
202
199
|
end
|
203
200
|
|
204
201
|
def flush(&block)
|
@@ -247,11 +244,13 @@ module LogStash module Codecs class Multiline < LogStash::Codecs::Base
|
|
247
244
|
|
248
245
|
def do_next(text, matched, &block)
|
249
246
|
buffer(text)
|
247
|
+
auto_flush_runner.start
|
250
248
|
flush(&block) if !matched || buffer_over_limits?
|
251
249
|
end
|
252
250
|
|
253
251
|
def do_previous(text, matched, &block)
|
254
252
|
flush(&block) if !matched || buffer_over_limits?
|
253
|
+
auto_flush_runner.start
|
255
254
|
buffer(text)
|
256
255
|
end
|
257
256
|
|
@@ -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.7'
|
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"
|
metadata
CHANGED
@@ -1,77 +1,77 @@
|
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Elastic
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: logstash-core
|
15
|
-
version_requirements: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 2.0.0
|
20
|
-
- - <
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 3.0.0
|
23
14
|
requirement: !ruby/object:Gem::Requirement
|
24
15
|
requirements:
|
25
|
-
- -
|
16
|
+
- - ">="
|
26
17
|
- !ruby/object:Gem::Version
|
27
18
|
version: 2.0.0
|
28
|
-
- - <
|
19
|
+
- - "<"
|
29
20
|
- !ruby/object:Gem::Version
|
30
21
|
version: 3.0.0
|
22
|
+
name: logstash-core
|
31
23
|
prerelease: false
|
32
24
|
type: :runtime
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: logstash-patterns-core
|
35
25
|
version_requirements: !ruby/object:Gem::Requirement
|
36
26
|
requirements:
|
37
|
-
- -
|
27
|
+
- - ">="
|
38
28
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
29
|
+
version: 2.0.0
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 3.0.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
40
34
|
requirement: !ruby/object:Gem::Requirement
|
41
35
|
requirements:
|
42
|
-
- -
|
36
|
+
- - ">="
|
43
37
|
- !ruby/object:Gem::Version
|
44
38
|
version: '0'
|
39
|
+
name: logstash-patterns-core
|
45
40
|
prerelease: false
|
46
41
|
type: :runtime
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: jls-grok
|
49
42
|
version_requirements: !ruby/object:Gem::Requirement
|
50
43
|
requirements:
|
51
|
-
- -
|
44
|
+
- - ">="
|
52
45
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0
|
46
|
+
version: '0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
54
48
|
requirement: !ruby/object:Gem::Requirement
|
55
49
|
requirements:
|
56
|
-
- - ~>
|
50
|
+
- - "~>"
|
57
51
|
- !ruby/object:Gem::Version
|
58
52
|
version: 0.11.1
|
53
|
+
name: jls-grok
|
59
54
|
prerelease: false
|
60
55
|
type: :runtime
|
61
|
-
- !ruby/object:Gem::Dependency
|
62
|
-
name: logstash-devutils
|
63
56
|
version_requirements: !ruby/object:Gem::Requirement
|
64
57
|
requirements:
|
65
|
-
- -
|
58
|
+
- - "~>"
|
66
59
|
- !ruby/object:Gem::Version
|
67
|
-
version:
|
60
|
+
version: 0.11.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
68
62
|
requirement: !ruby/object:Gem::Requirement
|
69
63
|
requirements:
|
70
|
-
- -
|
64
|
+
- - ">="
|
71
65
|
- !ruby/object:Gem::Version
|
72
66
|
version: '0'
|
67
|
+
name: logstash-devutils
|
73
68
|
prerelease: false
|
74
69
|
type: :development
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '0'
|
75
75
|
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
|
76
76
|
email: info@elastic.co
|
77
77
|
executables: []
|
@@ -104,12 +104,12 @@ require_paths:
|
|
104
104
|
- lib
|
105
105
|
required_ruby_version: !ruby/object:Gem::Requirement
|
106
106
|
requirements:
|
107
|
-
- -
|
107
|
+
- - ">="
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: '0'
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
111
|
requirements:
|
112
|
-
- -
|
112
|
+
- - ">="
|
113
113
|
- !ruby/object:Gem::Version
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|