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.
@@ -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 => 'Broken plugin: deadlock'})
127
- logger.error "Plugin #{self.class.name} timed out!"
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
- logger.error "Plugin #{self.class.name} : #{e.class} #{e}\n#{e.backtrace.join "\n"}"
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
  # хелпер, описание статуса
@@ -1,5 +1,5 @@
1
1
  module Riemann
2
2
  class Babbler
3
- VERSION = '1.3.3'
3
+ VERSION = '1.3.4'
4
4
  end
5
5
  end
@@ -18,7 +18,7 @@ describe Riemann::Babbler do
18
18
  end
19
19
 
20
20
  it 'Set logger lvl' do
21
- babbler.set_logger_lvl
21
+ babbler.set_logger_config
22
22
  babbler.logger.level.should eq 4
23
23
  end
24
24
 
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: 1.3.3
4
+ version: 1.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: