riemann-babbler 1.3.3 → 1.3.4
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.rb +14 -6
- data/lib/riemann/babbler/version.rb +1 -1
- data/spec/default.rb +1 -1
- metadata +1 -1
data/lib/riemann/babbler.rb
CHANGED
@@ -23,10 +23,8 @@ module Riemann
|
|
23
23
|
registered_plugins << klass
|
24
24
|
end
|
25
25
|
|
26
|
-
attr_reader :logger
|
27
|
-
attr_reader :riemann
|
26
|
+
attr_reader :hostname, :has_last_error, :logger, :riemann
|
28
27
|
alias :r :riemann
|
29
|
-
attr_reader :hostname
|
30
28
|
|
31
29
|
def initialize( configatron, logger, riemann )
|
32
30
|
@configatron = configatron
|
@@ -117,20 +115,30 @@ module Riemann
|
|
117
115
|
|
118
116
|
def run
|
119
117
|
# выйти если run_plugin не равен true
|
118
|
+
# error - текущая ошибка, @has_last_error - предыдущая
|
119
|
+
# две переменные для того что бы не удвоить сообщения об 'ОК'
|
120
120
|
return 0 unless run_plugin
|
121
|
+
error = true
|
121
122
|
t0 = Time.now
|
122
123
|
loop do
|
124
|
+
|
123
125
|
begin
|
124
126
|
Timeout::timeout( plugin.interval ) { tick }
|
125
127
|
rescue TimeoutError
|
126
|
-
report({:state => 'critical', :service => plugin.service, :description =>
|
127
|
-
logger.error
|
128
|
+
report({:state => 'critical', :service => plugin.service + " plugin errors", :description => "Broken plugin: deadlock"})
|
129
|
+
logger.error("Plugin #{self.class.name} timed out!")
|
128
130
|
rescue => e
|
129
|
-
|
131
|
+
report({:state => 'critical', :service => plugin.service + " plugin errors", :description => "Plugin exception: #{e.class}\n #{e.backtrace.join "\n"}"})
|
132
|
+
logger.error("Plugin #{self.class.name} : #{e.class} #{e}\n#{e.backtrace.join "\n"}")
|
133
|
+
else
|
134
|
+
error = false
|
130
135
|
end
|
131
136
|
|
137
|
+
report({:state => 'ok', :service => plugin.service + " plugin errors"}) if (not error && @has_last_error)
|
138
|
+
@has_last_error = error
|
132
139
|
sleep(plugin.interval - ((Time.now - t0) % plugin.interval))
|
133
140
|
end
|
141
|
+
|
134
142
|
end
|
135
143
|
|
136
144
|
# хелпер, описание статуса
|
data/spec/default.rb
CHANGED