Sha256: db86d51c446f0c8c49860eb845caa7f1b4fd0caa0e5b37db2254596987b06d96

Contents?: true

Size: 1021 Bytes

Versions: 11

Compression:

Stored size: 1021 Bytes

Contents

# encoding: utf-8

require "kurchatov/riemann/client"

module Kurchatov
  module Responders
    class Riemann < Kurchatov::Plugin

      include Kurchatov::Mixin::Queue

      FLUSH_INTERVAL = 0.5

      def initialize(conn)
        @hosts = conn
        @riemanns = Array.new
      end

      def run
        make_clients
        loop { flush; sleep FLUSH_INTERVAL }
      end

      private

      def make_clients
        @riemanns.clear
        @hosts.each do |host|
          riemann, port = host.split(':')
          @riemanns << Kurchatov::Riemann::Client.new(:host => riemann, :port => port)
          @name = @riemanns.map { |c| "riemann client [#{c.host}:#{c.port}]" }.join(' , ')
        end
      end

      def flush
        @events_to_send ||= events.all
        unless @events_to_send.empty?
          @riemanns.each {|riemann| riemann << @events_to_send }
          Log.debug("Sended events via #{@name.inspect}: #{@events_to_send}")
        end
        @events_to_send = nil
      end

    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
kurchatov-0.0.5.pre5 lib/kurchatov/responders/riemann.rb
kurchatov-0.0.5.pre4 lib/kurchatov/responders/riemann.rb
kurchatov-0.0.5.pre2 lib/kurchatov/responders/riemann.rb
kurchatov-0.0.5.pre1 lib/kurchatov/responders/riemann.rb
kurchatov-0.0.4 lib/kurchatov/responders/riemann.rb
kurchatov-0.0.4d lib/kurchatov/responders/riemann.rb
kurchatov-0.0.4c lib/kurchatov/responders/riemann.rb
kurchatov-0.0.4b lib/kurchatov/responders/riemann.rb
kurchatov-0.0.3 lib/kurchatov/responders/riemann.rb
kurchatov-0.0.3b lib/kurchatov/responders/riemann.rb
kurchatov-0.0.3a lib/kurchatov/responders/riemann.rb