Sha256: 02492c327fd2a6415c3e72a1ea589181356948eea9202dac66bd25d2fd6d90ce

Contents?: true

Size: 1.1 KB

Versions: 27

Compression:

Stored size: 1.1 KB

Contents

class Riemann::Babbler::Runit < Riemann::Babbler

  def init
    plugin.set_default(:service, 'runit')
    plugin.set_default(:not_monit, [])
    plugin.set_default(:interval, 60)
  end

  def run_plugin
    Dir.exists? '/etc/service'
    @status_history = Array.new
  end

  def read_run_status
    status = Array.new
    Dir.glob('/etc/service/*').each do |srv|
      next if plugin.not_monit.include? srv
      human_srv = ' ' + srv.gsub(/\/etc\/service\//,"")
      stat_file = File.join(srv, 'supervise', 'stat')
      next unless File.exists? stat_file
      if File.read( stat_file ).strip == 'run'
        @status_history.delete "human_srv"
        status << {:service => plugin.service + human_srv , :state => 'ok', :description => "runit service #{human_srv} running"}
      else
        status << {:service => plugin.service + human_srv , :state => 'critical', :description => "runit service #{human_srv} not running"} if @status_history.include? human_srv 
        @status_history << human_srv unless @status_history.include? human_srv
      end
    end
    status
  end

  def collect
    read_run_status
  end

end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
riemann-babbler-1.0.7.9 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.8 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.7 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.5 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.4 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.1.0pre2 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.3 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.2 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7.1 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.7 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.6 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.7 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.6 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.5 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.4 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.3 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.2 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5.1 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.5 lib/riemann/babbler/plugins/runit.rb
riemann-babbler-1.0.4 lib/riemann/babbler/plugins/runit.rb