Sha256: c8e24b5891c1cdc8e6f7fd821d6dfcc697e53fdbc4964ab2cdf7b1f8471f9410

Contents?: true

Size: 1.03 KB

Versions: 12

Compression:

Stored size: 1.03 KB

Contents

require 'net/http/server'
require 'json'

class Riemann::Babbler::Plugin::Responder < Riemann::Babbler::Plugin

  def init
    plugin.set_default(:port, opts.riemann.responder_port)
    plugin.set_default(:started_at, Time.now.to_i)
  end

  def info
    {
        :version => Riemann::Babbler::VERSION,
        :ruby    => "#{RUBY_VERSION}-#{RUBY_PATCHLEVEL}",
        :uptime  => Time.now.to_i - plugin.started_at,
        :errors  => opts.errors.to_hash,
        :config  => opts.riemann.to_hash
    }.to_json
  end

  def status_ok
    {:status => 'ok'}.to_json
  end

  def run!
    log :unknown, "Start responder 0.0.0.0:#{plugin.port}"
    ::Net::HTTP::Server.run(:port => plugin.port) do |request, _|
      log :debug, "Responder request: #{request}"
      case
        when request[:uri][:path] == "/kill" #&& request[:method] == "POST"
          [200, { 'Content-Type' => 'application/json' }, [status_ok]]
          Process.kill('TERM', $$)
      else
        [200, { 'Content-Type' => 'application/json' }, [info]]
      end
    end
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
riemann-babbler-2.0.7 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.6.1 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.6 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.5 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.4 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.3.2 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.3.1 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.3 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.2 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.1 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.0 lib/riemann/babbler/plugins/responder.rb
riemann-babbler-2.0.0pre15 lib/riemann/babbler/plugins/responder.rb