fluent-plugin-grepcounter 0.3.1 → 0.4.0

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
  SHA1:
3
- metadata.gz: e33868eff231419fbe756a0ffee44da515c0dd32
4
- data.tar.gz: 58163aa587b8dccf1bbb8772a2e28d6d53b84b5d
3
+ metadata.gz: 16a2bb7af97b5bbe3d7436c7f9ac749a74a8b660
4
+ data.tar.gz: 77e82589f64a366baf731899318c22c9cf076a37
5
5
  SHA512:
6
- metadata.gz: c461903fa92252cd705650cff061dec93374bfe0f940721269a1e1684b630ac742ce187be1eed42b2a56be9427ad097da1753b43b538b157d04e57628d20d5ed
7
- data.tar.gz: 506d59a863255d75aa10192250f2c67e14e0dcece26d60573cb0093c08f5c4f5ae6e11a5947d330023107243905fa7e5db16dce74ac223cea0f554f8394235ab
6
+ metadata.gz: 28c15035659a4ced1b00e033f8ab53e51cde287be5a62ef57af4834a75ba755eba6f929f4c3422534f368cb3842f83112fc70bb41a54eefc915b1534de7b284e
7
+ data.tar.gz: b67364cf3cd70c42bdd6015238383100d04fc030a320804a6c41eaa792ddd15be5335bfe37d1f7faf41ae1a41b3f12f3bfdea4d4d366fdc6cb6afaadb6af6a85
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 0.4.0 (2013/11/30)
2
+
3
+ Changes
4
+
5
+ - Change the option name `output_tag` to `tag`. `output_tag` is obsolete.
6
+ - Change the option name `output_with_joined_delimiter` to `delimiter`. `output_with_joined_delimiter` is obsolete.
7
+
1
8
  ## 0.3.1 (2013/11/02)
2
9
 
3
10
  Changes
data/README.md CHANGED
@@ -6,10 +6,10 @@ Fluentd plugin to count the number of matched messages, and emit if exeeds the `
6
6
 
7
7
  Assume inputs from another plugin are as belows:
8
8
 
9
- syslog.host1: {"message":"2013/01/13T07:02:11.124202 INFO GET /ping" }
10
- syslog.host1: {"message":"2013/01/13T07:02:13.232645 WARN POST /auth" }
11
- syslog.host1: {"message":"2013/01/13T07:02:21.542145 WARN GET /favicon.ico" }
12
- syslog.host1: {"message":"2013/01/13T07:02:43.632145 WARN POST /login" }
9
+ syslog.host1: {"message":"20.4.01/13T07:02:11.124202 INFO GET /ping" }
10
+ syslog.host1: {"message":"20.4.01/13T07:02:13.232645 WARN POST /auth" }
11
+ syslog.host1: {"message":"20.4.01/13T07:02:21.542145 WARN GET /favicon.ico" }
12
+ syslog.host1: {"message":"20.4.01/13T07:02:43.632145 WARN POST /login" }
13
13
 
14
14
  An example of grepcounter configuration:
15
15
 
@@ -27,7 +27,7 @@ Then, output bocomes as belows (indented):
27
27
 
28
28
  warn.count.syslog.host1: {
29
29
  "count":2,
30
- "message":["2013/01/13T07:02:13.232645 WARN POST /auth","2013/01/13T07:02:43.632145 WARN POST /login"],
30
+ "message":["20.4.01/13T07:02:13.232645 WARN POST /auth","20.4.01/13T07:02:43.632145 WARN POST /login"],
31
31
  "input_tag":"syslog.host1",
32
32
  "input_tag_last":"host1",
33
33
  }
@@ -35,7 +35,7 @@ Then, output bocomes as belows (indented):
35
35
  ### output_with_joined_delimiter
36
36
 
37
37
  As default, the `grepcounter` plugin outputs matched `message` as an array as shown above.
38
- You may want to output `message` as a string, then use `output_with_joined_delimiter` option like:
38
+ You may want to output `message` as a string, then use `delimiter` option like:
39
39
 
40
40
  <match syslog.**>
41
41
  type grepcounter
@@ -45,14 +45,14 @@ You may want to output `message` as a string, then use `output_with_joined_delim
45
45
  exclude favicon.ico
46
46
  threshold 1
47
47
  add_tag_prefix warn.count
48
- output_with_joined_delimiter \n
48
+ delimiter \n
49
49
  </source>
50
50
 
51
51
  Then, output bocomes as belows (indented). You can see the `message` field is joined with \n.
52
52
 
53
53
  warn.count.syslog.host1: {
54
54
  "count":2,
55
- "message":"2013/01/13T07:02:13.232645 WARN POST /auth\n2013/01/13T07:02:43.632145 WARN POST /login",
55
+ "message":"20.4.01/13T07:02:13.232645 WARN POST /auth\n20.4.01/13T07:02:43.632145 WARN POST /login",
56
56
  "input_tag":"syslog.host1",
57
57
  "input_tag_last":"host1",
58
58
  }
@@ -79,7 +79,7 @@ Then, output bocomes as belows (indented). You can see the `message` field is jo
79
79
 
80
80
  The threshold number to emit. Emit if `count` value >= specified value.
81
81
 
82
- - comparator (obsolete from 0.2.0. Use greater\_equal or less\_equal instead)
82
+ - comparator (obsolete)
83
83
 
84
84
  The comparation operator for the threshold (either of `>=` or `<=`). Default is `>=`, i.e., emit if count >= threshold.
85
85
  NOTE: 0 count message will not be emitted even if `<=` is specified because standby nodes receive no message usually.
@@ -100,7 +100,11 @@ Then, output bocomes as belows (indented). You can see the `message` field is jo
100
100
 
101
101
  Emit if `count` value is less than or equal to (<=) specified value.
102
102
 
103
- - output\_tag
103
+ - output\_tag (obsolete from 0.4.0)
104
+
105
+ The output tag. Required for aggregate `all`.
106
+
107
+ - tag (from 0.4.0)
104
108
 
105
109
  The output tag. Required for aggregate `all`.
106
110
 
@@ -108,7 +112,11 @@ Then, output bocomes as belows (indented). You can see the `message` field is jo
108
112
 
109
113
  Add tag prefix for output message
110
114
 
111
- - output\_with\_joined\_delimiter
115
+ - output\_with\_joined\_delimiter (obsolete from 0.4.0)
116
+
117
+ Output matched messages after `join`ed with the specified delimiter.
118
+
119
+ - delimiter (from 0.4.0)
112
120
 
113
121
  Output matched messages after `join`ed with the specified delimiter.
114
122
 
@@ -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-grepcounter"
6
- s.version = "0.3.1"
6
+ s.version = "0.4.0"
7
7
  s.authors = ["Naotoshi SEO"]
8
8
  s.email = ["sonots@gmail.com"]
9
9
  s.homepage = "https://github.com/sonots/fluent-plugin-grepcounter"
@@ -17,9 +17,11 @@ class Fluent::GrepCounterOutput < Fluent::Output
17
17
  config_param :less_equal, :float, :default => nil
18
18
  config_param :greater_than, :float, :default => nil
19
19
  config_param :greater_equal, :float, :default => nil
20
- config_param :output_tag, :string, :default => nil
20
+ config_param :output_tag, :string, :default => nil # obsolete
21
+ config_param :tag, :string, :default => nil
21
22
  config_param :add_tag_prefix, :string, :default => 'count'
22
- config_param :output_with_joined_delimiter, :string, :default => nil
23
+ config_param :output_with_joined_delimiter, :string, :default => nil # obsolete
24
+ config_param :delimiter, :string, :default => nil
23
25
  config_param :aggregate, :string, :default => 'tag'
24
26
  config_param :replace_invalid_sequence, :bool, :default => false
25
27
  config_param :store_file, :string, :default => nil
@@ -44,7 +46,7 @@ class Fluent::GrepCounterOutput < Fluent::Output
44
46
  raise Fluent::ConfigError, "grepcounter: comparator allows >=, <="
45
47
  end
46
48
 
47
- # to support obsolete options
49
+ # to support obsolete `threshold` and `comparator` options
48
50
  if @threshold.nil? and @less_than.nil? and @less_equal.nil? and @greater_than.nil? and @greater_equal.nil?
49
51
  @threshold = 1
50
52
  end
@@ -56,6 +58,12 @@ class Fluent::GrepCounterOutput < Fluent::Output
56
58
  end
57
59
  end
58
60
 
61
+ # to support osolete `output_tag` option
62
+ @tag = @output_tag if !@tag and @output_tag
63
+
64
+ # to support obsolete `output_with_joined_delimiter` option
65
+ @delimiter = @output_with_joined_delimiter if !@delimiter and @output_with_joined_delimiter
66
+
59
67
  unless ['tag', 'all'].include?(@aggregate)
60
68
  raise Fluent::ConfigError, "grepcounter: aggregate allows tag/all"
61
69
  end
@@ -145,13 +153,13 @@ class Fluent::GrepCounterOutput < Fluent::Output
145
153
  matches += flushed_matches[tag]
146
154
  end
147
155
  output = generate_output(count, matches)
148
- Fluent::Engine.emit(@output_tag, time, output) if output
156
+ Fluent::Engine.emit(@tag, time, output) if output
149
157
  else
150
158
  flushed_counts.keys.each do |tag|
151
159
  count = flushed_counts[tag]
152
160
  matches = flushed_matches[tag]
153
161
  output = generate_output(count, matches, tag)
154
- tag = @output_tag ? @output_tag : "#{@add_tag_prefix}.#{tag}"
162
+ tag = @tag ? @tag : "#{@add_tag_prefix}.#{tag}"
155
163
  Fluent::Engine.emit(tag, time, output) if output
156
164
  end
157
165
  end
@@ -166,7 +174,7 @@ class Fluent::GrepCounterOutput < Fluent::Output
166
174
  return nil if @greater_equal and count < @greater_equal
167
175
  output = {}
168
176
  output['count'] = count
169
- output['message'] = @output_with_joined_delimiter.nil? ? matches : matches.join(@output_with_joined_delimiter)
177
+ output['message'] = @delimiter.nil? ? matches : matches.join(@delimiter)
170
178
  if tag
171
179
  output['input_tag'] = tag
172
180
  output['input_tag_last'] = tag.split('.').last
@@ -50,7 +50,7 @@ describe Fluent::GrepCounterOutput do
50
50
  its(:exclude) { should be_nil }
51
51
  its(:threshold) { should == 1 }
52
52
  its(:comparator) { should == '>=' }
53
- its(:output_tag) { should be_nil }
53
+ its(:tag) { should be_nil }
54
54
  its(:add_tag_prefix) { should == 'count' }
55
55
  end
56
56
  end
@@ -124,7 +124,7 @@ describe Fluent::GrepCounterOutput do
124
124
  it { emit }
125
125
  end
126
126
 
127
- context "threshold and comparator" do
127
+ context "threshold and comparator (obsolete)" do
128
128
  context '>= threshold' do
129
129
  let(:config) { CONFIG + %[threshold 4] }
130
130
  before do
@@ -162,7 +162,7 @@ describe Fluent::GrepCounterOutput do
162
162
  end
163
163
  end
164
164
 
165
- context "less|greater_than|equal" do
165
+ context "less and greater" do
166
166
  context 'greater_equal' do
167
167
  let(:config) { CONFIG + %[greater_equal 4] }
168
168
  before do
@@ -254,7 +254,7 @@ describe Fluent::GrepCounterOutput do
254
254
  end
255
255
  end
256
256
 
257
- context 'output_tag' do
257
+ context 'output_tag (obsolete)' do
258
258
  let(:config) { CONFIG + %[output_tag foo] }
259
259
  before do
260
260
  Fluent::Engine.stub(:now).and_return(time)
@@ -263,6 +263,15 @@ describe Fluent::GrepCounterOutput do
263
263
  it { emit }
264
264
  end
265
265
 
266
+ context 'tag' do
267
+ let(:config) { CONFIG + %[tag foo] }
268
+ before do
269
+ Fluent::Engine.stub(:now).and_return(time)
270
+ Fluent::Engine.should_receive(:emit).with("foo", time, expected)
271
+ end
272
+ it { emit }
273
+ end
274
+
266
275
  context 'add_tag_prefix' do
267
276
  let(:config) { CONFIG + %[add_tag_prefix foo] }
268
277
  before do
@@ -272,7 +281,7 @@ describe Fluent::GrepCounterOutput do
272
281
  it { emit }
273
282
  end
274
283
 
275
- context 'output_with_joined_delimiter' do
284
+ context 'output_with_joined_delimiter (obsolete)' do
276
285
  # \\n shall be \n in config file
277
286
  let(:config) { CONFIG + %[output_with_joined_delimiter \\n] }
278
287
  before do
@@ -283,6 +292,17 @@ describe Fluent::GrepCounterOutput do
283
292
  it { emit }
284
293
  end
285
294
 
295
+ context 'delimiter' do
296
+ # \\n shall be \n in config file
297
+ let(:config) { CONFIG + %[delimiter \\n] }
298
+ before do
299
+ Fluent::Engine.stub(:now).and_return(time)
300
+ message = expected["message"].join('\n')
301
+ Fluent::Engine.should_receive(:emit).with("count.#{tag}", time, expected.merge("message" => message))
302
+ end
303
+ it { emit }
304
+ end
305
+
286
306
  context 'aggregate all' do
287
307
  let(:messages) { ['foobar', 'foobar'] }
288
308
  let(:emit) do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-grepcounter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naotoshi SEO
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-02 00:00:00.000000000 Z
11
+ date: 2013-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fluentd