riemann-babbler 0.0.9 → 0.1.0
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/lib/riemann/babbler/plugin.rb +36 -7
- data/lib/riemann/version.rb +1 -1
- metadata +3 -3
@@ -5,6 +5,8 @@ module Riemann
|
|
5
5
|
module Babbler
|
6
6
|
|
7
7
|
require 'riemann/client'
|
8
|
+
require 'open3'
|
9
|
+
require 'timeout'
|
8
10
|
|
9
11
|
def self.included(base)
|
10
12
|
base.instance_eval do
|
@@ -56,10 +58,10 @@ module Riemann
|
|
56
58
|
begin
|
57
59
|
tick
|
58
60
|
rescue => e
|
61
|
+
#report({:service => plugin.service, :status => 'critical'})
|
59
62
|
$stderr.puts "#{e.class} #{e}\n#{e.backtrace.join "\n"}"
|
60
63
|
end
|
61
64
|
|
62
|
-
# Sleep.
|
63
65
|
sleep(plugin.interval - ((Time.now - t0) % plugin.interval))
|
64
66
|
end
|
65
67
|
end
|
@@ -72,15 +74,42 @@ module Riemann
|
|
72
74
|
def plugin
|
73
75
|
end
|
74
76
|
|
77
|
+
# хэлпер для парса stdout+stderr и exit status
|
78
|
+
def shell(*cmd)
|
79
|
+
exit_status=nil
|
80
|
+
err=nil
|
81
|
+
out=nil
|
82
|
+
Timeout::timeout(5) {
|
83
|
+
Open3.popen3(*cmd) do |stdin, stdout, stderr, wait_thread|
|
84
|
+
err = stderr.gets(nil)
|
85
|
+
out = stdout.gets(nil)
|
86
|
+
[stdin, stdout, stderr].each{|stream| stream.send('close')}
|
87
|
+
exit_status = wait_thread.value
|
88
|
+
end
|
89
|
+
}
|
90
|
+
if exit_status.to_i > 0
|
91
|
+
err = err.chomp if err
|
92
|
+
raise err
|
93
|
+
elsif out
|
94
|
+
return out.chomp
|
95
|
+
else
|
96
|
+
return true
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
75
100
|
# хелпер, описание статуса
|
76
101
|
def state(my_state)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
102
|
+
unless plugin.states.warning.nil?
|
103
|
+
case
|
104
|
+
when my_state.between?(plugin.states.warning, plugin.states.critical)
|
105
|
+
'warning'
|
106
|
+
when my_state > plugin.states.warning
|
107
|
+
'critical'
|
108
|
+
else
|
109
|
+
'ok'
|
110
|
+
end
|
82
111
|
else
|
83
|
-
'ok'
|
112
|
+
my_state >= plugin.states.critical ? 'critical' : 'ok'
|
84
113
|
end
|
85
114
|
end
|
86
115
|
|
data/lib/riemann/version.rb
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.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-04-
|
12
|
+
date: 2013-04-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: riemann-client
|
@@ -131,7 +131,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
131
|
version: '0'
|
132
132
|
segments:
|
133
133
|
- 0
|
134
|
-
hash: -
|
134
|
+
hash: -1531376658486460902
|
135
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
136
|
none: false
|
137
137
|
requirements:
|