riemann-babbler 0.3.1 → 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.
- data/Gemfile +0 -1
- data/Gemfile.lock +8 -2
- data/bin/riemann-babbler +13 -8
- data/lib/riemann/babbler/plugin.rb +18 -28
- data/lib/riemann/babbler/plugins/cpu.rb +1 -2
- data/lib/riemann/babbler/plugins/disk.rb +1 -4
- data/lib/riemann/babbler/plugins/dummy.rb +2 -2
- data/lib/riemann/babbler/plugins/la.rb +1 -2
- data/lib/riemann/babbler/plugins/memory.rb +1 -2
- data/lib/riemann/babbler/plugins/net.rb +36 -18
- data/lib/riemann/version.rb +2 -2
- data/riemann-babbler.gemspec +0 -1
- metadata +4 -18
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -7,15 +7,18 @@ GEM
|
|
7
7
|
configatron (2.10.0)
|
8
8
|
yamler (>= 0.1.0)
|
9
9
|
diff-lcs (1.2.2)
|
10
|
+
ffi (1.4.0)
|
10
11
|
logger (1.2.8)
|
11
12
|
method_source (0.8.1)
|
13
|
+
mime-types (1.21)
|
12
14
|
mtrc (0.0.4)
|
13
|
-
parallel (0.6.4)
|
14
15
|
pry (0.9.12)
|
15
16
|
coderay (~> 1.0.5)
|
16
17
|
method_source (~> 0.8)
|
17
18
|
slop (~> 3.4)
|
18
19
|
rake (10.0.4)
|
20
|
+
rest-client (1.6.7)
|
21
|
+
mime-types (>= 1.16)
|
19
22
|
riemann-client (0.2.1)
|
20
23
|
beefcake (>= 0.3.5)
|
21
24
|
mtrc (>= 0.0.4)
|
@@ -29,6 +32,8 @@ GEM
|
|
29
32
|
diff-lcs (>= 1.1.3, < 2.0)
|
30
33
|
rspec-mocks (2.13.0)
|
31
34
|
slop (3.4.3)
|
35
|
+
sys-filesystem (1.1.0)
|
36
|
+
ffi
|
32
37
|
trollop (2.0)
|
33
38
|
yamler (0.1.0)
|
34
39
|
|
@@ -39,9 +44,10 @@ DEPENDENCIES
|
|
39
44
|
awesome_print
|
40
45
|
configatron
|
41
46
|
logger
|
42
|
-
parallel
|
43
47
|
pry
|
44
48
|
rake
|
49
|
+
rest-client
|
45
50
|
riemann-client
|
46
51
|
rspec
|
52
|
+
sys-filesystem
|
47
53
|
trollop
|
data/bin/riemann-babbler
CHANGED
@@ -4,7 +4,6 @@
|
|
4
4
|
require 'trollop'
|
5
5
|
require 'yaml'
|
6
6
|
require 'configatron'
|
7
|
-
require 'parallel'
|
8
7
|
require 'logger'
|
9
8
|
|
10
9
|
require File.expand_path('../../lib/riemann/version', __FILE__)
|
@@ -25,7 +24,7 @@ EOS
|
|
25
24
|
end
|
26
25
|
|
27
26
|
# logger
|
28
|
-
|
27
|
+
logger = Logger.new(STDOUT)
|
29
28
|
|
30
29
|
# merge configs
|
31
30
|
config_file = if File.exist?( opts[:config] )
|
@@ -40,10 +39,6 @@ config_default = YAML.load_file( File.expand_path('../../config.yml', __FILE__)
|
|
40
39
|
config = config_default.deep_merge( config_file )
|
41
40
|
configatron.configure_from_hash config
|
42
41
|
|
43
|
-
# отправляем к плагинам
|
44
|
-
$configatron = configatron
|
45
|
-
$logger = log
|
46
|
-
|
47
42
|
# get plugins
|
48
43
|
plugins = []
|
49
44
|
default_plugins_dir = File.expand_path('../../lib/riemann/babbler/plugins/', __FILE__)
|
@@ -67,6 +62,16 @@ unless configatron.plugins.files.nil?
|
|
67
62
|
end
|
68
63
|
|
69
64
|
# start plugins
|
70
|
-
|
71
|
-
|
65
|
+
plugins.each { |plugin| require plugin }
|
66
|
+
|
67
|
+
plugin_threads = Riemann::Babbler.registered_plugins.map do |plugin|
|
68
|
+
Thread.new {
|
69
|
+
plugin.new( configatron, logger ).run
|
70
|
+
}
|
72
71
|
end
|
72
|
+
|
73
|
+
Signal.trap "USR1" do
|
74
|
+
plugin_threads.each( &:kill )
|
75
|
+
end
|
76
|
+
|
77
|
+
plugin_threads.each( &:join )
|
@@ -2,32 +2,31 @@
|
|
2
2
|
|
3
3
|
# Базовое описание плагина
|
4
4
|
module Riemann
|
5
|
-
|
5
|
+
class Babbler
|
6
|
+
|
7
|
+
def self.registered_plugins
|
8
|
+
@plugins ||= []
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.inherited( klass )
|
12
|
+
registered_plugins << klass
|
13
|
+
end
|
6
14
|
|
7
15
|
require 'riemann/client'
|
8
16
|
require 'open3'
|
9
17
|
require 'timeout'
|
10
18
|
require 'rest_client'
|
11
19
|
|
12
|
-
|
13
|
-
base.instance_eval do
|
14
|
-
def run
|
15
|
-
new.run
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
20
|
+
attr_reader :logger
|
19
21
|
|
20
|
-
def initialize
|
21
|
-
@configatron =
|
22
|
+
def initialize( configatron, logger )
|
23
|
+
@configatron = configatron
|
24
|
+
@logger = logger
|
22
25
|
@storage = Hash.new
|
23
26
|
init
|
24
27
|
run
|
25
28
|
end
|
26
29
|
|
27
|
-
def log
|
28
|
-
@logger ||= $logger
|
29
|
-
end
|
30
|
-
|
31
30
|
def options
|
32
31
|
@configatron
|
33
32
|
end
|
@@ -40,7 +39,7 @@ module Riemann
|
|
40
39
|
end
|
41
40
|
event[:tags] = options.riemann.tags unless options.riemann.tags.nil?
|
42
41
|
event[:host] = host
|
43
|
-
|
42
|
+
logger.debug "Report status: #{event.inspect}"
|
44
43
|
riemann << event
|
45
44
|
end
|
46
45
|
|
@@ -106,19 +105,10 @@ module Riemann
|
|
106
105
|
def tick
|
107
106
|
posted_hash = collect
|
108
107
|
posted_hash.each_key do |service|
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
:metric => posted_hash[service],
|
114
|
-
:is_diff => posted_hash[:is_diff]
|
115
|
-
})
|
116
|
-
else
|
117
|
-
report({
|
118
|
-
:service => plugin.service + " " + service,
|
119
|
-
:metric => posted_hash[service]
|
120
|
-
})
|
121
|
-
end
|
108
|
+
report({
|
109
|
+
:service => service,
|
110
|
+
:metric => posted_hash[service][:metric]
|
111
|
+
})
|
122
112
|
end
|
123
113
|
end
|
124
114
|
|
@@ -1,23 +1,30 @@
|
|
1
|
-
class Riemann::Babbler::Net
|
2
|
-
include Riemann::Babbler
|
1
|
+
class Riemann::Babbler::Net < Riemann::Babbler
|
3
2
|
|
4
3
|
WORDS = ['rx bytes',
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
4
|
+
'rx packets',
|
5
|
+
'rx errs',
|
6
|
+
'rx drop',
|
7
|
+
'rx fifo',
|
8
|
+
'rx frame',
|
9
|
+
'rx compressed',
|
10
|
+
'rx multicast',
|
11
|
+
'tx bytes',
|
12
|
+
'tx packets',
|
13
|
+
'tx drops',
|
14
|
+
'tx fifo',
|
15
|
+
'tx colls',
|
16
|
+
'tx carrier',
|
17
|
+
'tx compressed']
|
19
18
|
|
20
|
-
def
|
19
|
+
def plugin
|
20
|
+
options.plugins.net
|
21
|
+
end
|
22
|
+
|
23
|
+
def init
|
24
|
+
@old_status = Hash.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def net
|
21
28
|
f = File.read('/proc/net/dev')
|
22
29
|
status = Hash.new
|
23
30
|
f.split("\n").each do |line|
|
@@ -35,5 +42,16 @@ class Riemann::Babbler::Net
|
|
35
42
|
status
|
36
43
|
end
|
37
44
|
|
38
|
-
|
45
|
+
def tick
|
46
|
+
status = net
|
47
|
+
status.each_key do |service|
|
48
|
+
#next if status[service] == 0
|
49
|
+
report({
|
50
|
+
:service => service,
|
51
|
+
:metric => status[service],
|
52
|
+
:is_diff => true
|
53
|
+
})
|
54
|
+
end
|
55
|
+
end
|
39
56
|
|
57
|
+
end
|
data/lib/riemann/version.rb
CHANGED
data/riemann-babbler.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: riemann-babbler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -75,22 +75,6 @@ dependencies:
|
|
75
75
|
- - ! '>='
|
76
76
|
- !ruby/object:Gem::Version
|
77
77
|
version: '0'
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: parallel
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
86
|
-
type: :runtime
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ! '>='
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '0'
|
94
78
|
- !ruby/object:Gem::Dependency
|
95
79
|
name: sys-filesystem
|
96
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -161,6 +145,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
145
|
- - ! '>='
|
162
146
|
- !ruby/object:Gem::Version
|
163
147
|
version: '0'
|
148
|
+
segments:
|
149
|
+
- 0
|
150
|
+
hash: 1972461691726905926
|
164
151
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
152
|
none: false
|
166
153
|
requirements:
|
@@ -174,4 +161,3 @@ signing_key:
|
|
174
161
|
specification_version: 3
|
175
162
|
summary: Riemann health cheker.
|
176
163
|
test_files: []
|
177
|
-
has_rdoc:
|