fluent-plugin-suppress 0.0.7 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -2
- data/README.md +4 -4
- data/fluent-plugin-suppress.gemspec +4 -5
- data/lib/fluent/plugin/filter_suppress.rb +9 -16
- data/lib/fluent/plugin/out_suppress.rb +12 -24
- data/test/helper.rb +5 -24
- data/test/plugin/test_filter_suppress.rb +20 -21
- data/test/plugin/test_out_suppress.rb +54 -53
- metadata +13 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c0b6ee711914b962c5f5d766cce357ddd110a25
|
4
|
+
data.tar.gz: ce81797b67eb2fb9b7370bae9437c31c6169324d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de1ffa0ddd281010c45bc2e1681cb49a02991c64e84e2860b839bce1cb81b48f0f8f5223504590edb04aa56c49d1f77af20ced5076c0a597a8665608ca8fac19
|
7
|
+
data.tar.gz: 1613ba5ab4ea3591f7d24b8c5bb13f05d057c2c5c2c0dabc1159bf936209ccf5ce078e16597bfc0eda4e01befb34e3a2e3fa349ea601f845a302796fa5222034
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -12,7 +12,7 @@ fluentd.conf
|
|
12
12
|
|
13
13
|
```
|
14
14
|
<match foo.**>
|
15
|
-
type
|
15
|
+
@type suppress
|
16
16
|
interval 10
|
17
17
|
num 2
|
18
18
|
attr_keys host,message
|
@@ -52,7 +52,7 @@ Fluentd >= v0.12 can use filter plugin.
|
|
52
52
|
|
53
53
|
```
|
54
54
|
<filter foo.**>
|
55
|
-
type
|
55
|
+
@type suppress
|
56
56
|
interval 10
|
57
57
|
num 2
|
58
58
|
attr_keys host,message
|
@@ -67,7 +67,7 @@ Filter plugin will not replace a tag.
|
|
67
67
|
|
68
68
|
```
|
69
69
|
<match foo.**>
|
70
|
-
type
|
70
|
+
@type suppress
|
71
71
|
attr_keys data.host, data.message
|
72
72
|
</match>
|
73
73
|
```
|
@@ -85,7 +85,7 @@ If `attr_keys` is not specified, records will be suppressed by tag only.
|
|
85
85
|
|
86
86
|
```
|
87
87
|
<match foo.**>
|
88
|
-
type suppress
|
88
|
+
@type suppress
|
89
89
|
...
|
90
90
|
</match>
|
91
91
|
```
|
@@ -1,11 +1,10 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
# -*- mode:ruby -*-
|
3
2
|
|
4
3
|
Gem::Specification.new do |gem|
|
5
4
|
gem.authors = ["FUJIWARA Shunichiro"]
|
6
5
|
gem.email = ["fujiwara.shunichiro@gmail.com"]
|
7
|
-
gem.description = %q{Fluentd plugin to suppress same messages}
|
8
|
-
gem.summary = %q{Fluentd plugin to suppress same messages}
|
6
|
+
gem.description = %q{Fluentd filter plugin to suppress same messages}
|
7
|
+
gem.summary = %q{Fluentd filter plugin to suppress same messages}
|
9
8
|
gem.homepage = "https://github.com/fujiwara/fluent-plugin-suppress"
|
10
9
|
gem.license = "Apache-2.0"
|
11
10
|
|
@@ -14,9 +13,9 @@ Gem::Specification.new do |gem|
|
|
14
13
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
15
14
|
gem.name = "fluent-plugin-suppress"
|
16
15
|
gem.require_paths = ["lib"]
|
17
|
-
gem.version = "0.0
|
16
|
+
gem.version = "1.0.0"
|
18
17
|
|
19
|
-
gem.add_runtime_dependency "fluentd", ">= 0.
|
18
|
+
gem.add_runtime_dependency "fluentd", [">= 0.14.8", "< 2"]
|
20
19
|
gem.add_development_dependency "rake", ">= 0.9.2"
|
21
20
|
gem.add_development_dependency "test-unit", ">= 3.0"
|
22
21
|
end
|
@@ -1,11 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'fluent/plugin/filter'
|
2
|
+
|
3
|
+
module Fluent::Plugin
|
4
|
+
class SuppressFilter < Fluent::Plugin::Filter
|
4
5
|
Fluent::Plugin.register_filter('suppress', self)
|
5
6
|
|
6
|
-
config_param :attr_keys, :string, :
|
7
|
-
config_param :num, :integer, :
|
8
|
-
config_param :interval, :integer, :
|
7
|
+
config_param :attr_keys, :string, default: nil
|
8
|
+
config_param :num, :integer, default: 3
|
9
|
+
config_param :interval, :integer, default: 300
|
9
10
|
|
10
11
|
def configure(conf)
|
11
12
|
super
|
@@ -13,16 +14,8 @@ module Fluent
|
|
13
14
|
@slots = {}
|
14
15
|
end
|
15
16
|
|
16
|
-
def start
|
17
|
-
super
|
18
|
-
end
|
19
|
-
|
20
|
-
def shutdown
|
21
|
-
super
|
22
|
-
end
|
23
|
-
|
24
17
|
def filter_stream(tag, es)
|
25
|
-
new_es = MultiEventStream.new
|
18
|
+
new_es = Fluent::MultiEventStream.new
|
26
19
|
es.each do |time, record|
|
27
20
|
if @keys
|
28
21
|
keys = @keys.map do |key|
|
@@ -50,5 +43,5 @@ module Fluent
|
|
50
43
|
end
|
51
44
|
return new_es
|
52
45
|
end
|
53
|
-
end
|
46
|
+
end
|
54
47
|
end
|
@@ -1,22 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require "fluent/plugin/output"
|
2
|
+
|
3
|
+
module Fluent::Plugin
|
4
|
+
class SuppressOutput < Fluent::Plugin::Output
|
4
5
|
include Fluent::HandleTagNameMixin
|
5
6
|
|
6
7
|
Fluent::Plugin.register_output('suppress', self)
|
7
8
|
|
8
|
-
|
9
|
-
config_param :num, :integer, :default => 3
|
10
|
-
config_param :interval, :integer, :default => 300
|
9
|
+
helpers :event_emitter
|
11
10
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
# Define `router` method of v0.12 to support v0.10 or earlier
|
17
|
-
unless method_defined?(:router)
|
18
|
-
define_method("router") { Fluent::Engine }
|
19
|
-
end
|
11
|
+
config_param :attr_keys, :string, default: nil
|
12
|
+
config_param :num, :integer, default: 3
|
13
|
+
config_param :interval, :integer, default: 300
|
20
14
|
|
21
15
|
def configure(conf)
|
22
16
|
super
|
@@ -24,22 +18,18 @@ module Fluent
|
|
24
18
|
@labelled = !conf['@label'].nil?
|
25
19
|
|
26
20
|
if !@labelled && !@remove_tag_prefix && !@remove_tag_suffix && !@add_tag_prefix && !@add_tag_suffix
|
27
|
-
raise ConfigError, "out_suppress: Set remove_tag_prefix, remove_tag_suffix, add_tag_prefix or add_tag_suffix."
|
21
|
+
raise Fluent::ConfigError, "out_suppress: Set remove_tag_prefix, remove_tag_suffix, add_tag_prefix or add_tag_suffix."
|
28
22
|
end
|
29
23
|
|
30
24
|
@keys = @attr_keys ? @attr_keys.split(/ *, */) : nil
|
31
25
|
@slots = {}
|
32
26
|
end
|
33
27
|
|
34
|
-
def
|
35
|
-
|
28
|
+
def multi_workers_ready?
|
29
|
+
true
|
36
30
|
end
|
37
31
|
|
38
|
-
def
|
39
|
-
super
|
40
|
-
end
|
41
|
-
|
42
|
-
def emit(tag, es, chain)
|
32
|
+
def process(tag, es)
|
43
33
|
es.each do |time, record|
|
44
34
|
if @keys
|
45
35
|
keys = @keys.map do |key|
|
@@ -71,8 +61,6 @@ module Fluent
|
|
71
61
|
log.warn "Drop record #{record} tag '#{tag}' was not replaced. Can't emit record, cause infinity looping. Set remove_tag_prefix, remove_tag_suffix, add_tag_prefix or add_tag_suffix correctly."
|
72
62
|
end
|
73
63
|
end
|
74
|
-
|
75
|
-
chain.next
|
76
64
|
end
|
77
65
|
end
|
78
66
|
end
|
data/test/helper.rb
CHANGED
@@ -1,28 +1,9 @@
|
|
1
|
-
require '
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
1
|
+
require 'bundler/setup'
|
10
2
|
require 'test/unit'
|
11
3
|
|
12
|
-
$LOAD_PATH.unshift(File.join(
|
13
|
-
$LOAD_PATH.unshift(
|
4
|
+
$LOAD_PATH.unshift(File.join(__dir__, '..', 'lib'))
|
5
|
+
$LOAD_PATH.unshift(__dir__)
|
14
6
|
require 'fluent/test'
|
15
|
-
|
16
|
-
nulllogger = Object.new
|
17
|
-
nulllogger.instance_eval {|obj|
|
18
|
-
def method_missing(method, *args)
|
19
|
-
# pass
|
20
|
-
end
|
21
|
-
}
|
22
|
-
$log = nulllogger
|
23
|
-
end
|
7
|
+
require 'fluent/test/helpers'
|
24
8
|
|
25
|
-
|
26
|
-
|
27
|
-
class Test::Unit::TestCase
|
28
|
-
end
|
9
|
+
Test::Unit::TestCase.include(Fluent::Test::Helpers)
|
@@ -1,6 +1,5 @@
|
|
1
|
-
require '
|
2
|
-
require 'fluent/
|
3
|
-
require 'fluent/test'
|
1
|
+
require 'helper'
|
2
|
+
require 'fluent/test/driver/filter'
|
4
3
|
require 'fluent/plugin/filter_suppress'
|
5
4
|
|
6
5
|
class SuppressFilterTest < Test::Unit::TestCase
|
@@ -27,17 +26,15 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
27
26
|
num 2
|
28
27
|
]
|
29
28
|
|
30
|
-
def create_driver(conf = CONFIG
|
31
|
-
Fluent::Test::
|
29
|
+
def create_driver(conf = CONFIG)
|
30
|
+
Fluent::Test::Driver::Filter.new(Fluent::Plugin::SuppressFilter).configure(conf)
|
32
31
|
end
|
33
32
|
|
34
33
|
def test_emit
|
35
|
-
return unless defined? Fluent::Filter
|
36
|
-
|
37
34
|
d = create_driver(CONFIG)
|
38
35
|
es = Fluent::MultiEventStream.new
|
39
36
|
|
40
|
-
time =
|
37
|
+
time = event_time("2012-11-22 11:22:33 UTC")
|
41
38
|
es.add(time + 1, {"id" => 1, "host" => "web01", "message" => "error!!"})
|
42
39
|
es.add(time + 2, {"id" => 2, "host" => "web01", "message" => "error!!"})
|
43
40
|
es.add(time + 3, {"id" => 3, "host" => "web01", "message" => "error!!"})
|
@@ -47,8 +44,11 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
47
44
|
es.add(time + 13, {"id" => 7, "host" => "web01", "message" => "error!!"})
|
48
45
|
es.add(time + 14, {"id" => 8, "host" => "web01", "message" => "error!!"})
|
49
46
|
|
50
|
-
|
51
|
-
|
47
|
+
d.run(default_tag: "test.info") do
|
48
|
+
d.feed(es)
|
49
|
+
end
|
50
|
+
records = d.filtered_records
|
51
|
+
|
52
52
|
assert_equal 5, records.length
|
53
53
|
assert_equal({"id" => 1, "host" => "web01", "message" => "error!!"}, records[0])
|
54
54
|
assert_equal({"id" => 2, "host" => "web01", "message" => "error!!"}, records[1])
|
@@ -58,12 +58,10 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def test_emit_wtih_nested_key
|
61
|
-
return unless defined? Fluent::Filter
|
62
|
-
|
63
61
|
d = create_driver(CONFIG_WITH_NESTED_KEY)
|
64
62
|
es = Fluent::MultiEventStream.new
|
65
63
|
|
66
|
-
time =
|
64
|
+
time = event_time("2012-11-22 11:22:33 UTC")
|
67
65
|
es.add(time + 1, {"id" => 1, "data" => {"host" => "web01", "message" => "error!!"}})
|
68
66
|
es.add(time + 2, {"id" => 2, "data" => {"host" => "web01", "message" => "error!!"}})
|
69
67
|
es.add(time + 3, {"id" => 3, "data" => {"host" => "web01", "message" => "error!!"}})
|
@@ -73,8 +71,10 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
73
71
|
es.add(time + 13, {"id" => 7, "data" => {"host" => "web01", "message" => "error!!"}})
|
74
72
|
es.add(time + 14, {"id" => 8, "data" => {"host" => "web01", "message" => "error!!"}})
|
75
73
|
|
76
|
-
|
77
|
-
|
74
|
+
d.run(default_tag: "test.info") do
|
75
|
+
d.feed(es)
|
76
|
+
end
|
77
|
+
records = d.filtered_records
|
78
78
|
|
79
79
|
assert_equal 5, records.length
|
80
80
|
assert_equal({"id"=>1, "data" => {"host"=>"web01", "message"=>"error!!"}}, records[0])
|
@@ -85,12 +85,10 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
85
85
|
end
|
86
86
|
|
87
87
|
def test_emit_tagonly
|
88
|
-
return unless defined? Fluent::Filter
|
89
|
-
|
90
88
|
d = create_driver(CONFIG_TAG_ONLY)
|
91
89
|
es = Fluent::MultiEventStream.new
|
92
90
|
|
93
|
-
time =
|
91
|
+
time = event_time("2012-11-22 11:22:33 UTC")
|
94
92
|
es.add(time + 1, {"id" => 1, "host" => "web01", "message" => "1 error!!"})
|
95
93
|
es.add(time + 2, {"id" => 2, "host" => "web02", "message" => "2 error!!"})
|
96
94
|
es.add(time + 3, {"id" => 3, "host" => "web03", "message" => "3 error!!"})
|
@@ -100,8 +98,10 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
100
98
|
es.add(time + 13,{"id" => 7, "host" => "web07", "message" => "7 error!!"})
|
101
99
|
es.add(time + 14,{"id" => 8, "host" => "web08", "message" => "8 error!!"})
|
102
100
|
|
103
|
-
|
104
|
-
|
101
|
+
d.run(default_tag: "test.info") do
|
102
|
+
d.feed(es)
|
103
|
+
end
|
104
|
+
records = d.filtered_records
|
105
105
|
|
106
106
|
assert_equal 4, records.length
|
107
107
|
assert_equal({"id"=>1, "host"=>"web01", "message"=>"1 error!!"}, records[0])
|
@@ -109,5 +109,4 @@ class SuppressFilterTest < Test::Unit::TestCase
|
|
109
109
|
assert_equal({"id"=>6, "host"=>"web06", "message"=>"6 error!!"}, records[2])
|
110
110
|
assert_equal({"id"=>7, "host"=>"web07", "message"=>"7 error!!"}, records[3])
|
111
111
|
end
|
112
|
-
|
113
112
|
end
|
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'helper'
|
2
|
+
require 'fluent/test/driver/output'
|
3
|
+
require 'fluent/plugin/out_suppress'
|
2
4
|
|
3
5
|
class SuppressOutputTest < Test::Unit::TestCase
|
4
6
|
def setup
|
@@ -25,81 +27,80 @@ class SuppressOutputTest < Test::Unit::TestCase
|
|
25
27
|
add_tag_prefix sp.
|
26
28
|
]
|
27
29
|
|
28
|
-
def create_driver(conf = CONFIG
|
29
|
-
Fluent::Test::
|
30
|
+
def create_driver(conf = CONFIG)
|
31
|
+
Fluent::Test::Driver::Output.new(Fluent::Plugin::SuppressOutput).configure(conf)
|
30
32
|
end
|
31
33
|
|
32
34
|
def test_emit
|
33
35
|
d = create_driver
|
34
36
|
|
35
|
-
time =
|
36
|
-
d.run do
|
37
|
-
d.
|
38
|
-
d.
|
39
|
-
d.
|
40
|
-
d.
|
41
|
-
d.
|
42
|
-
d.
|
43
|
-
d.
|
44
|
-
d.
|
37
|
+
time = event_time("2012-11-22 11:22:33 UTC")
|
38
|
+
d.run(default_tag: "test.info") do
|
39
|
+
d.feed(time + 1, {"id" => 1, "host" => "web01", "message" => "error!!"})
|
40
|
+
d.feed(time + 2, {"id" => 2, "host" => "web01", "message" => "error!!"})
|
41
|
+
d.feed(time + 3, {"id" => 3, "host" => "web01", "message" => "error!!"})
|
42
|
+
d.feed(time + 4, {"id" => 4, "host" => "web01", "message" => "error!!"})
|
43
|
+
d.feed(time + 4, {"id" => 5, "host" => "app01", "message" => "error!!"})
|
44
|
+
d.feed(time + 12, {"id" => 6, "host" => "web01", "message" => "error!!"})
|
45
|
+
d.feed(time + 13, {"id" => 7, "host" => "web01", "message" => "error!!"})
|
46
|
+
d.feed(time + 14, {"id" => 8, "host" => "web01", "message" => "error!!"})
|
45
47
|
end
|
46
48
|
|
47
|
-
|
48
|
-
assert_equal 5,
|
49
|
-
assert_equal ["sp.test.info", time + 1, {"id"=>1, "host"=>"web01", "message"=>"error!!"}],
|
50
|
-
assert_equal ["sp.test.info", time + 2, {"id"=>2, "host"=>"web01", "message"=>"error!!"}],
|
51
|
-
assert_equal ["sp.test.info", time + 4, {"id"=>5, "host"=>"app01", "message"=>"error!!"}],
|
52
|
-
assert_equal ["sp.test.info", time + 12, {"id"=>6, "host"=>"web01", "message"=>"error!!"}],
|
53
|
-
assert_equal ["sp.test.info", time + 13, {"id"=>7, "host"=>"web01", "message"=>"error!!"}],
|
49
|
+
events = d.events
|
50
|
+
assert_equal 5, events.length
|
51
|
+
assert_equal ["sp.test.info", time + 1, {"id"=>1, "host"=>"web01", "message"=>"error!!"}], events[0]
|
52
|
+
assert_equal ["sp.test.info", time + 2, {"id"=>2, "host"=>"web01", "message"=>"error!!"}], events[1]
|
53
|
+
assert_equal ["sp.test.info", time + 4, {"id"=>5, "host"=>"app01", "message"=>"error!!"}], events[2]
|
54
|
+
assert_equal ["sp.test.info", time + 12, {"id"=>6, "host"=>"web01", "message"=>"error!!"}], events[3]
|
55
|
+
assert_equal ["sp.test.info", time + 13, {"id"=>7, "host"=>"web01", "message"=>"error!!"}], events[4]
|
54
56
|
|
55
57
|
end
|
56
58
|
|
57
59
|
def test_emit_wtih_nested_key
|
58
60
|
d = create_driver(CONFIG_WITH_NESTED_KEY)
|
59
61
|
|
60
|
-
time =
|
61
|
-
d.run do
|
62
|
-
d.
|
63
|
-
d.
|
64
|
-
d.
|
65
|
-
d.
|
66
|
-
d.
|
67
|
-
d.
|
68
|
-
d.
|
69
|
-
d.
|
62
|
+
time = event_time("2012-11-22 11:22:33 UTC")
|
63
|
+
d.run(default_tag: "test.info") do
|
64
|
+
d.feed(time + 1, {"id" => 1, "data" => {"host" => "web01", "message" => "error!!"}})
|
65
|
+
d.feed(time + 2, {"id" => 2, "data" => {"host" => "web01", "message" => "error!!"}})
|
66
|
+
d.feed(time + 3, {"id" => 3, "data" => {"host" => "web01", "message" => "error!!"}})
|
67
|
+
d.feed(time + 4, {"id" => 4, "data" => {"host" => "web01", "message" => "error!!"}})
|
68
|
+
d.feed(time + 4, {"id" => 5, "data" => {"host" => "app01", "message" => "error!!"}})
|
69
|
+
d.feed(time + 12, {"id" => 6, "data" => {"host" => "web01", "message" => "error!!"}})
|
70
|
+
d.feed(time + 13, {"id" => 7, "data" => {"host" => "web01", "message" => "error!!"}})
|
71
|
+
d.feed(time + 14, {"id" => 8, "data" => {"host" => "web01", "message" => "error!!"}})
|
70
72
|
end
|
71
73
|
|
72
|
-
|
73
|
-
assert_equal 5,
|
74
|
-
assert_equal ["sp.test.info", time + 1, {"id"=>1, "data" => {"host"=>"web01", "message"=>"error!!"}}],
|
75
|
-
assert_equal ["sp.test.info", time + 2, {"id"=>2, "data" => {"host"=>"web01", "message"=>"error!!"}}],
|
76
|
-
assert_equal ["sp.test.info", time + 4, {"id"=>5, "data" => {"host"=>"app01", "message"=>"error!!"}}],
|
77
|
-
assert_equal ["sp.test.info", time + 12, {"id"=>6, "data" => {"host"=>"web01", "message"=>"error!!"}}],
|
78
|
-
assert_equal ["sp.test.info", time + 13, {"id"=>7, "data" => {"host"=>"web01", "message"=>"error!!"}}],
|
74
|
+
events = d.events
|
75
|
+
assert_equal 5, events.length
|
76
|
+
assert_equal ["sp.test.info", time + 1, {"id"=>1, "data" => {"host"=>"web01", "message"=>"error!!"}}], events[0]
|
77
|
+
assert_equal ["sp.test.info", time + 2, {"id"=>2, "data" => {"host"=>"web01", "message"=>"error!!"}}], events[1]
|
78
|
+
assert_equal ["sp.test.info", time + 4, {"id"=>5, "data" => {"host"=>"app01", "message"=>"error!!"}}], events[2]
|
79
|
+
assert_equal ["sp.test.info", time + 12, {"id"=>6, "data" => {"host"=>"web01", "message"=>"error!!"}}], events[3]
|
80
|
+
assert_equal ["sp.test.info", time + 13, {"id"=>7, "data" => {"host"=>"web01", "message"=>"error!!"}}], events[4]
|
79
81
|
|
80
82
|
end
|
81
83
|
|
82
84
|
def test_emit_tagonly
|
83
85
|
d = create_driver(CONFIG_TAG_ONLY)
|
84
86
|
|
85
|
-
time =
|
86
|
-
d.run do
|
87
|
-
d.
|
88
|
-
d.
|
89
|
-
d.
|
90
|
-
d.
|
91
|
-
d.
|
92
|
-
d.
|
93
|
-
d.
|
94
|
-
d.
|
87
|
+
time = event_time("2012-11-22 11:22:33 UTC")
|
88
|
+
d.run(default_tag: "test.info") do
|
89
|
+
d.feed(time + 1, {"id" => 1, "host" => "web01", "message" => "1 error!!"})
|
90
|
+
d.feed(time + 2, {"id" => 2, "host" => "web02", "message" => "2 error!!"})
|
91
|
+
d.feed(time + 3, {"id" => 3, "host" => "web03", "message" => "3 error!!"})
|
92
|
+
d.feed(time + 4, {"id" => 4, "host" => "web04", "message" => "4 error!!"})
|
93
|
+
d.feed(time + 4, {"id" => 5, "host" => "app05", "message" => "5 error!!"})
|
94
|
+
d.feed(time + 12, {"id" => 6, "host" => "web06", "message" => "6 error!!"})
|
95
|
+
d.feed(time + 13, {"id" => 7, "host" => "web07", "message" => "7 error!!"})
|
96
|
+
d.feed(time + 14, {"id" => 8, "host" => "web08", "message" => "8 error!!"})
|
95
97
|
end
|
96
98
|
|
97
|
-
|
98
|
-
assert_equal 4,
|
99
|
-
assert_equal ["sp.test.info", time + 1, {"id"=>1, "host"=>"web01", "message"=>"1 error!!"}],
|
100
|
-
assert_equal ["sp.test.info", time + 2, {"id"=>2, "host"=>"web02", "message"=>"2 error!!"}],
|
101
|
-
assert_equal ["sp.test.info", time + 12, {"id"=>6, "host"=>"web06", "message"=>"6 error!!"}],
|
102
|
-
assert_equal ["sp.test.info", time + 13, {"id"=>7, "host"=>"web07", "message"=>"7 error!!"}],
|
99
|
+
events = d.events
|
100
|
+
assert_equal 4, events.length
|
101
|
+
assert_equal ["sp.test.info", time + 1, {"id"=>1, "host"=>"web01", "message"=>"1 error!!"}], events[0]
|
102
|
+
assert_equal ["sp.test.info", time + 2, {"id"=>2, "host"=>"web02", "message"=>"2 error!!"}], events[1]
|
103
|
+
assert_equal ["sp.test.info", time + 12, {"id"=>6, "host"=>"web06", "message"=>"6 error!!"}], events[2]
|
104
|
+
assert_equal ["sp.test.info", time + 13, {"id"=>7, "host"=>"web07", "message"=>"7 error!!"}], events[3]
|
103
105
|
end
|
104
|
-
|
105
106
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-suppress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- FUJIWARA Shunichiro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-02-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.14.8
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: 0.14.8
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: rake
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,7 +58,7 @@ dependencies:
|
|
52
58
|
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: '3.0'
|
55
|
-
description: Fluentd plugin to suppress same messages
|
61
|
+
description: Fluentd filter plugin to suppress same messages
|
56
62
|
email:
|
57
63
|
- fujiwara.shunichiro@gmail.com
|
58
64
|
executables: []
|
@@ -92,10 +98,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
98
|
version: '0'
|
93
99
|
requirements: []
|
94
100
|
rubyforge_project:
|
95
|
-
rubygems_version: 2.6.
|
101
|
+
rubygems_version: 2.6.11
|
96
102
|
signing_key:
|
97
103
|
specification_version: 4
|
98
|
-
summary: Fluentd plugin to suppress same messages
|
104
|
+
summary: Fluentd filter plugin to suppress same messages
|
99
105
|
test_files:
|
100
106
|
- test/helper.rb
|
101
107
|
- test/plugin/test_filter_suppress.rb
|