Sha256: 51a4cccd93e4231c7ff21e6c844e8a28ece54025e677b0dffa37dab40c7184e6

Contents?: true

Size: 743 Bytes

Versions: 1

Compression:

Stored size: 743 Bytes

Contents

require 'json'

class Riemann::Babbler::Panels < Riemann::Babbler

  def init
    plugin.set_default(:service, 'panels')
    plugin.set_default(:interval, 60)
    plugin.set_default(:url, 'http://localhost/panel.json')
    plugin.states.set_default(:critical, 60)
  end

  def collect

    json = JSON.parse rest_get(plugin.url)
    good, bad = 0, 0

    json["panels"].each do |panel|
      panel["status"] == "offline" ? bad += 1 : good += 1
    end

    [
      {:service => plugin.service + " online", :description => "online panels in #{plugin.url}", :metric => good, :state => 'ok' },
      {:service => plugin.service + " offline", :description => "all panels in #{plugin.url}", :metric => bad + good, :state => 'ok' }
    ]
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
riemann-babbler-1.0.1 lib/riemann/babbler/plugins/panels.rb