Sha256: f16a0c59b47b057f12fb3e7e28223fc244fbce9ed2be1a31abb64d78797d404a

Contents?: true

Size: 1.42 KB

Versions: 3

Compression:

Stored size: 1.42 KB

Contents

# encoding: utf-8

require 'kurchatov/plugin'
require 'kurchatov/mashie'

module Kurchatov
  module Plugins
    class Riemann < Kurchatov::Plugin

      include Kurchatov::Mixin::Ohai
      include Kurchatov::Mixin::Event
      include Kurchatov::Mixin::Command
      include Kurchatov::Mixin::Http

      attr_accessor :run_if, :collect, :always_start, :ignore_errors, :interval, :plugin

      def initialize(name = '')
        super(name)
        @run_if = Proc.new { true }
        @plugin = Mashie.new
        @always_start = false
        @ignore_errors = false
        @collect = nil
        @interval = 60.0
      end

      def run
        loop do
          t_start = Time.now
          Timeout::timeout(interval * 2.to_f/3) do
            self.instance_eval(&collect)
          end
          sleep(interval - (Time.now - t_start).to_i)
        end
      end

      def respond_to_ohai?(opts = {})
        opts.each { |k, v| return false unless ohai[k] == v }
        true
      end

      def runnable_by_config?
        Log.info("Plugin '#{self.name}' disabled by nil collect") and return if collect.nil?
        Log.info("Plugin '#{self.name}' disabled in config") and return if (plugin[:disable] == true)
        Log.info("Plugin '#{self.name}' not started by run_if condition ") and
            return unless self.instance_eval(&run_if)
        @plugin[:service] = name if @plugin[:service].nil?
        true
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
kurchatov-0.0.6.pre.3 lib/kurchatov/plugin/riemann.rb
kurchatov-0.0.6.pre.2 lib/kurchatov/plugin/riemann.rb
kurchatov-0.0.6.pre.1 lib/kurchatov/plugin/riemann.rb