fluent-plugin-proc_count 0.0.1 → 0.0.2
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 +4 -5
- data/README.md +2 -0
- data/fluent-plugin-proc_count.gemspec +2 -1
- data/lib/fluent/plugin/in_proc_count.rb +34 -8
- data/test/plugin/test_in_proc_count.rb +27 -8
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 87e0030594a618600414b01345d83440eb16f7a2
|
4
|
+
data.tar.gz: 7b2bae56a1d04b2e4f3fe24b5cd65cbe9d053459
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1be406576b5d193951f9942a7c1788ab0b8ed319dfe5b1aa52f0fd8bb3d69b0fc054f641507cab94c4b394b404740f9faa4fdc49e643391ef638c5cd8f3c2984
|
7
|
+
data.tar.gz: bf1cdc126d71d13ee7f7f9828d3ca44621ca103560cd81ed4617bc9866a68328bce4278a4264ac41988cb8d61049ff0f3be358238a56812c5f427506ce95a141
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
# fluent-plugin-proc_count
|
2
|
+
[](http://badge.fury.io/rb/fluent-plugin-proc_count)
|
3
|
+
[](http://travis-ci.org/toyama0919/fluent-plugin-proc_count)
|
2
4
|
|
3
5
|
process count check plugin for fluentd
|
4
6
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |gem|
|
4
4
|
gem.name = "fluent-plugin-proc_count"
|
5
|
-
gem.version = "0.0.
|
5
|
+
gem.version = "0.0.2"
|
6
6
|
gem.summary = %q{process count check plugin for fluentd.}
|
7
7
|
gem.description = %q{process count check plugin for fluentd.}
|
8
8
|
gem.license = "MIT"
|
@@ -24,5 +24,6 @@ Gem::Specification.new do |gem|
|
|
24
24
|
gem.add_development_dependency 'rake'
|
25
25
|
gem.add_development_dependency 'rubocop'
|
26
26
|
gem.add_development_dependency 'rubygems-tasks'
|
27
|
+
gem.add_development_dependency 'test-unit'
|
27
28
|
gem.add_development_dependency 'yard'
|
28
29
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'fluent/input'
|
1
2
|
require 'sys/proctable'
|
2
3
|
require 'ostruct'
|
3
4
|
|
@@ -16,15 +17,18 @@ module Fluent
|
|
16
17
|
config_param :tag, :string
|
17
18
|
config_param :regexp, :string
|
18
19
|
config_param :proc_count, :integer, default: 1
|
20
|
+
config_param :operator_name, :string, default: "equal"
|
19
21
|
end
|
20
22
|
|
21
23
|
def configure(conf)
|
22
24
|
super
|
23
|
-
@processes = @processes.map { |process|
|
25
|
+
@processes = @processes.map { |process|
|
24
26
|
s = OpenStruct.new
|
25
27
|
s.regexp = Regexp.new(process.regexp)
|
26
28
|
s.proc_count = process.proc_count
|
27
29
|
s.tag = process.tag
|
30
|
+
s.operator_name = process.operator_name
|
31
|
+
s.operator = select_operator(process.operator_name)
|
28
32
|
s
|
29
33
|
}
|
30
34
|
end
|
@@ -47,27 +51,49 @@ module Fluent
|
|
47
51
|
end
|
48
52
|
|
49
53
|
def emit_proc_count
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
if process_spec
|
54
|
+
@processes.each do |process_spec|
|
55
|
+
begin
|
56
|
+
record_size = get_processes(process_spec).size
|
57
|
+
if !correct_process?(process_spec, record_size)
|
54
58
|
router.emit(
|
55
59
|
process_spec.tag,
|
56
60
|
Fluent::Engine.now,
|
57
61
|
{
|
58
62
|
regexp: process_spec.regexp.source,
|
59
|
-
proc_count:
|
63
|
+
proc_count: record_size,
|
60
64
|
expect_proc_count: process_spec.proc_count,
|
65
|
+
operator_name: process_spec.operator_name,
|
61
66
|
hostname: Socket.gethostname
|
62
67
|
}
|
63
68
|
)
|
64
69
|
end
|
70
|
+
rescue => e
|
71
|
+
log.error e
|
65
72
|
end
|
66
|
-
rescue => e
|
67
|
-
log.error e
|
68
73
|
end
|
69
74
|
end
|
70
75
|
|
76
|
+
def select_operator(operator_name)
|
77
|
+
case operator_name.to_sym
|
78
|
+
when :equal
|
79
|
+
"=="
|
80
|
+
when :gather_than
|
81
|
+
">"
|
82
|
+
when :gather_equal
|
83
|
+
">="
|
84
|
+
when :less_than
|
85
|
+
"<"
|
86
|
+
when :less_equal
|
87
|
+
"<="
|
88
|
+
else
|
89
|
+
raise Fluent::ConfigError, "proc_count operator allows equal/gather_than/gather_equal/less_than/less_equal"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def correct_process?(process_spec, expect_proc_count)
|
94
|
+
expect_proc_count.public_send(process_spec.operator, process_spec.proc_count.to_i)
|
95
|
+
end
|
96
|
+
|
71
97
|
def get_processes(process_spec)
|
72
98
|
processes = []
|
73
99
|
ProcTable.ps do |process|
|
@@ -5,7 +5,17 @@ class ProcCountInputTest < Test::Unit::TestCase
|
|
5
5
|
Fluent::Test.setup
|
6
6
|
end
|
7
7
|
|
8
|
-
|
8
|
+
CONFIG = %q{
|
9
|
+
interval 60s
|
10
|
+
|
11
|
+
<process>
|
12
|
+
tag proc_count.test
|
13
|
+
regexp foobarbuzz
|
14
|
+
proc_count 0
|
15
|
+
</process>
|
16
|
+
}
|
17
|
+
|
18
|
+
def create_driver(conf = CONFIG)
|
9
19
|
Fluent::Test::InputTestDriver.new(Fluent::ProcCountInput).configure(conf)
|
10
20
|
end
|
11
21
|
|
@@ -23,12 +33,22 @@ class ProcCountInputTest < Test::Unit::TestCase
|
|
23
33
|
tag proc_count.embulk
|
24
34
|
regexp embulk
|
25
35
|
proc_count 1
|
36
|
+
operator_name less_than
|
26
37
|
</process>
|
27
38
|
}
|
28
39
|
|
29
|
-
assert_equal
|
30
|
-
|
31
|
-
|
40
|
+
assert_equal 60, d.instance.interval
|
41
|
+
|
42
|
+
process_conf1 = d.instance.processes.first
|
43
|
+
assert_equal 'proc_count.fluentd', process_conf1.tag
|
44
|
+
assert_equal 'bin/fluentd', process_conf1.regexp.match('bin/fluentd -c')[0]
|
45
|
+
assert_equal 'equal', process_conf1.operator_name
|
46
|
+
assert_equal '==', process_conf1.operator
|
47
|
+
|
48
|
+
process_conf2 = d.instance.processes.last
|
49
|
+
assert_equal 'proc_count.embulk', process_conf2.tag
|
50
|
+
assert_equal 'less_than', process_conf2.operator_name
|
51
|
+
assert_equal '<', process_conf2.operator
|
32
52
|
end
|
33
53
|
|
34
54
|
def test_configure_error_when_config_is_empty
|
@@ -45,8 +65,7 @@ class ProcCountInputTest < Test::Unit::TestCase
|
|
45
65
|
end
|
46
66
|
|
47
67
|
emits = d.emits
|
48
|
-
assert_equal true, emits.length
|
49
|
-
assert_equal
|
50
|
-
assert_equal ({"k1"=>"ok"}), emits[0].last
|
68
|
+
assert_equal true, emits.length.zero?
|
69
|
+
assert_equal true, emits[0].nil?
|
51
70
|
end
|
52
|
-
end
|
71
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-proc_count
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toyama0919
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: test-unit
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: yard
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -176,11 +190,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
176
190
|
version: '0'
|
177
191
|
requirements: []
|
178
192
|
rubyforge_project:
|
179
|
-
rubygems_version: 2.
|
193
|
+
rubygems_version: 2.6.11
|
180
194
|
signing_key:
|
181
195
|
specification_version: 4
|
182
196
|
summary: process count check plugin for fluentd.
|
183
197
|
test_files:
|
184
198
|
- test/helper.rb
|
185
199
|
- test/plugin/test_in_proc_count.rb
|
186
|
-
has_rdoc:
|