fluent-plugin-grep 0.3.2 → 0.3.3
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/.travis.yml +1 -1
- data/CHANGELOG.md +7 -0
- data/README.md +2 -2
- data/fluent-plugin-grep.gemspec +1 -1
- data/lib/fluent/plugin/out_grep.rb +23 -18
- data/spec/out_grep_bench.rb +3 -0
- data/spec/out_grep_spec.rb +110 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b28e2f9df47ff5255ba541d237af0803507d0b54
|
4
|
+
data.tar.gz: 6f3d5af7d9893d5cdc27a20499273f0030c507f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6ab25c093315af58af4517eb5239765386cbbfff46822c1225c9a56467833a033d7de7f2f174cae0ca817af448292558ab80dcd35edfdad2df5d93829f463cb8
|
7
|
+
data.tar.gz: 6baedc91f8bfeb856f2ac54c1473ad8f6f0a936fbd8036d462b017ef201042d809ea83a4a86cac57be5180f8026e99582159cf18510b47d49d60650aa2fedc56
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -12,7 +12,7 @@ Fluentd plugin to grep messages.
|
|
12
12
|
regexp WARN
|
13
13
|
exclude favicon
|
14
14
|
add_tag_prefix greped
|
15
|
-
</
|
15
|
+
</match>
|
16
16
|
|
17
17
|
Assuming following inputs are coming:
|
18
18
|
|
@@ -36,7 +36,7 @@ Now, `regexpN` and `excludeN` options are available to specify grep conditions f
|
|
36
36
|
regexp2 foo ^awesome$
|
37
37
|
exclude1 message favicon
|
38
38
|
add_tag_prefix greped
|
39
|
-
</
|
39
|
+
</match>
|
40
40
|
|
41
41
|
Assuming following inputs are coming:
|
42
42
|
|
data/fluent-plugin-grep.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "fluent-plugin-grep"
|
6
|
-
s.version = "0.3.
|
6
|
+
s.version = "0.3.3"
|
7
7
|
s.authors = ["Naotoshi Seo"]
|
8
8
|
s.email = ["sonots@gmail.com"]
|
9
9
|
s.homepage = "https://github.com/sonots/fluent-plugin-grep"
|
@@ -9,6 +9,8 @@ class Fluent::GrepOutput < Fluent::Output
|
|
9
9
|
config_param :tag, :string, :default => nil
|
10
10
|
config_param :add_tag_prefix, :string, :default => nil
|
11
11
|
config_param :remove_tag_prefix, :string, :default => nil
|
12
|
+
config_param :add_tag_suffix, :string, :default => nil
|
13
|
+
config_param :remove_tag_suffix, :string, :default => nil
|
12
14
|
config_param :replace_invalid_sequence, :bool, :default => false
|
13
15
|
(1..REGEXP_MAX_NUM).each {|i| config_param :"regexp#{i}", :string, :default => nil }
|
14
16
|
(1..REGEXP_MAX_NUM).each {|i| config_param :"exclude#{i}", :string, :default => nil }
|
@@ -45,24 +47,10 @@ class Fluent::GrepOutput < Fluent::Output
|
|
45
47
|
@excludes[key] = Regexp.compile(exclude)
|
46
48
|
end
|
47
49
|
|
48
|
-
if @tag.nil? and @add_tag_prefix.nil? and @remove_tag_prefix.nil?
|
50
|
+
if @tag.nil? and @add_tag_prefix.nil? and @remove_tag_prefix.nil? and @add_tag_suffix.nil? and @remove_tag_suffix.nil?
|
49
51
|
@add_tag_prefix = 'greped' # not ConfigError to support lower version compatibility
|
50
52
|
end
|
51
|
-
|
52
|
-
@tag_prefix = "#{@add_tag_prefix}." if @add_tag_prefix
|
53
|
-
@tag_prefix_match = "#{@remove_tag_prefix}." if @remove_tag_prefix
|
54
|
-
@tag_proc =
|
55
|
-
if @tag
|
56
|
-
Proc.new {|tag| @tag }
|
57
|
-
elsif @tag_prefix and @tag_prefix_match
|
58
|
-
Proc.new {|tag| "#{@tag_prefix}#{lstrip(tag, @tag_prefix_match)}" }
|
59
|
-
elsif @tag_prefix_match
|
60
|
-
Proc.new {|tag| lstrip(tag, @tag_prefix_match) }
|
61
|
-
elsif @tag_prefix
|
62
|
-
Proc.new {|tag| "#{@tag_prefix}#{tag}" }
|
63
|
-
else
|
64
|
-
Proc.new {|tag| tag }
|
65
|
-
end
|
53
|
+
@tag_proc = tag_proc
|
66
54
|
end
|
67
55
|
|
68
56
|
def emit(tag, es, chain)
|
@@ -88,8 +76,25 @@ class Fluent::GrepOutput < Fluent::Output
|
|
88
76
|
|
89
77
|
private
|
90
78
|
|
91
|
-
def
|
92
|
-
|
79
|
+
def tag_proc
|
80
|
+
rstrip = Proc.new {|str, substr| str.chomp(substr) }
|
81
|
+
lstrip = Proc.new {|str, substr| str.start_with?(substr) ? str[substr.size..-1] : str }
|
82
|
+
tag_prefix = "#{rstrip.call(@add_tag_prefix, '.')}." if @add_tag_prefix
|
83
|
+
tag_suffix = ".#{lstrip.call(@add_tag_suffix, '.')}" if @add_tag_suffix
|
84
|
+
tag_prefix_match = "#{rstrip.call(@remove_tag_prefix, '.')}." if @remove_tag_prefix
|
85
|
+
tag_suffix_match = ".#{lstrip.call(@remove_tag_suffix, '.')}" if @remove_tag_suffix
|
86
|
+
tag_fixed = @tag if @tag
|
87
|
+
if tag_fixed
|
88
|
+
Proc.new {|tag| tag_fixed }
|
89
|
+
elsif tag_prefix_match and tag_suffix_match
|
90
|
+
Proc.new {|tag| "#{tag_prefix}#{rstrip.call(lstrip.call(tag, tag_prefix_match), tag_suffix_match)}#{tag_suffix}" }
|
91
|
+
elsif tag_prefix_match
|
92
|
+
Proc.new {|tag| "#{tag_prefix}#{lstrip.call(tag, tag_prefix_match)}#{tag_suffix}" }
|
93
|
+
elsif tag_suffix_match
|
94
|
+
Proc.new {|tag| "#{tag_prefix}#{rstrip.call(tag, tag_suffix_match)}#{tag_suffix}" }
|
95
|
+
else
|
96
|
+
Proc.new {|tag| "#{tag_prefix}#{tag}#{tag_suffix}" }
|
97
|
+
end
|
93
98
|
end
|
94
99
|
|
95
100
|
def match(regexp, string)
|
data/spec/out_grep_bench.rb
CHANGED
data/spec/out_grep_spec.rb
CHANGED
@@ -160,6 +160,7 @@ describe Fluent::GrepOutput do
|
|
160
160
|
add_tag_prefix foo
|
161
161
|
]
|
162
162
|
end
|
163
|
+
let(:tag) { 'syslog.host1' }
|
163
164
|
before do
|
164
165
|
Fluent::Engine.stub(:now).and_return(time)
|
165
166
|
Fluent::Engine.should_receive(:emit).with("foo.#{tag}", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
@@ -174,6 +175,7 @@ describe Fluent::GrepOutput do
|
|
174
175
|
remove_tag_prefix syslog
|
175
176
|
]
|
176
177
|
end
|
178
|
+
let(:tag) { 'syslog.host1' }
|
177
179
|
before do
|
178
180
|
Fluent::Engine.stub(:now).and_return(time)
|
179
181
|
Fluent::Engine.should_receive(:emit).with("host1", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
@@ -181,6 +183,114 @@ describe Fluent::GrepOutput do
|
|
181
183
|
it { emit }
|
182
184
|
end
|
183
185
|
|
186
|
+
context 'add_tag_suffix' do
|
187
|
+
let(:config) do
|
188
|
+
CONFIG + %[
|
189
|
+
regexp ping
|
190
|
+
add_tag_suffix foo
|
191
|
+
]
|
192
|
+
end
|
193
|
+
let(:tag) { 'syslog.host1' }
|
194
|
+
before do
|
195
|
+
Fluent::Engine.stub(:now).and_return(time)
|
196
|
+
Fluent::Engine.should_receive(:emit).with("#{tag}.foo", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
197
|
+
end
|
198
|
+
it { emit }
|
199
|
+
end
|
200
|
+
|
201
|
+
context 'remove_tag_suffix' do
|
202
|
+
let(:config) do
|
203
|
+
CONFIG + %[
|
204
|
+
regexp ping
|
205
|
+
remove_tag_suffix host1
|
206
|
+
]
|
207
|
+
end
|
208
|
+
let(:tag) { 'syslog.host1' }
|
209
|
+
before do
|
210
|
+
Fluent::Engine.stub(:now).and_return(time)
|
211
|
+
Fluent::Engine.should_receive(:emit).with("syslog", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
212
|
+
end
|
213
|
+
it { emit }
|
214
|
+
end
|
215
|
+
|
216
|
+
context 'all tag options' do
|
217
|
+
let(:config) do
|
218
|
+
CONFIG + %[
|
219
|
+
regexp ping
|
220
|
+
add_tag_prefix foo
|
221
|
+
remove_tag_prefix syslog
|
222
|
+
add_tag_suffix foo
|
223
|
+
remove_tag_suffix host1
|
224
|
+
]
|
225
|
+
end
|
226
|
+
let(:tag) { 'syslog.foo.host1' }
|
227
|
+
before do
|
228
|
+
Fluent::Engine.stub(:now).and_return(time)
|
229
|
+
Fluent::Engine.should_receive(:emit).with("foo.foo.foo", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
230
|
+
end
|
231
|
+
it { emit }
|
232
|
+
end
|
233
|
+
|
234
|
+
context 'add_tag_prefix.' do
|
235
|
+
let(:config) do
|
236
|
+
CONFIG + %[
|
237
|
+
regexp ping
|
238
|
+
add_tag_prefix foo.
|
239
|
+
]
|
240
|
+
end
|
241
|
+
let(:tag) { 'syslog.host1' }
|
242
|
+
before do
|
243
|
+
Fluent::Engine.stub(:now).and_return(time)
|
244
|
+
Fluent::Engine.should_receive(:emit).with("foo.#{tag}", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
245
|
+
end
|
246
|
+
it { emit }
|
247
|
+
end
|
248
|
+
|
249
|
+
context 'remove_tag_prefix.' do
|
250
|
+
let(:config) do
|
251
|
+
CONFIG + %[
|
252
|
+
regexp ping
|
253
|
+
remove_tag_prefix syslog.
|
254
|
+
]
|
255
|
+
end
|
256
|
+
let(:tag) { 'syslog.host1' }
|
257
|
+
before do
|
258
|
+
Fluent::Engine.stub(:now).and_return(time)
|
259
|
+
Fluent::Engine.should_receive(:emit).with("host1", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
260
|
+
end
|
261
|
+
it { emit }
|
262
|
+
end
|
263
|
+
|
264
|
+
context '.add_tag_suffix' do
|
265
|
+
let(:config) do
|
266
|
+
CONFIG + %[
|
267
|
+
regexp ping
|
268
|
+
add_tag_suffix .foo
|
269
|
+
]
|
270
|
+
end
|
271
|
+
let(:tag) { 'syslog.host1' }
|
272
|
+
before do
|
273
|
+
Fluent::Engine.stub(:now).and_return(time)
|
274
|
+
Fluent::Engine.should_receive(:emit).with("#{tag}.foo", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
275
|
+
end
|
276
|
+
it { emit }
|
277
|
+
end
|
278
|
+
|
279
|
+
context '.remove_tag_suffix' do
|
280
|
+
let(:config) do
|
281
|
+
CONFIG + %[
|
282
|
+
regexp ping
|
283
|
+
remove_tag_suffix .host1
|
284
|
+
]
|
285
|
+
end
|
286
|
+
let(:tag) { 'syslog.host1' }
|
287
|
+
before do
|
288
|
+
Fluent::Engine.stub(:now).and_return(time)
|
289
|
+
Fluent::Engine.should_receive(:emit).with("syslog", time, {'foo'=>'bar', 'message'=>"2013/01/13T07:02:11.124202 INFO GET /ping"})
|
290
|
+
end
|
291
|
+
it { emit }
|
292
|
+
end
|
293
|
+
|
184
294
|
context 'replace_invalid_sequence' do
|
185
295
|
let(:config) do
|
186
296
|
CONFIG + %[
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-grep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naotoshi Seo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|