Sha256: 6e956503af63e1555c7f2f0791c7a959367745c0ea13b57de667723853adc84f

Contents?: true

Size: 1.25 KB

Versions: 24

Compression:

Stored size: 1.25 KB

Contents

require 'dashing-contrib/bottles/kue'
module DashingContrib
  module Jobs
    module Kue
      extend DashingContrib::RunnableJob

      def self.metrics(options)
        client = DashingContrib::Kue::Client.new({ endpoint: options[:endpoint] })
        stats = client.stats
        metrics = [
            { label: 'Processed',  value: stats[:complete_count] },
            { label: 'Processing', value: stats[:active_count] },
            { label: 'Failed',     value: stats[:failed_count] },
            { label: 'Queued',     value: stats[:inactive_count] },
            { label: 'Delayed',     value: stats[:delayed_count] }
        ]
        { metrics: metrics }
      end

      def self.validate_state(metrics, options = {})
        default = { failed_warning_at: 20, failed_critical_at: 100 }
        user_options = default.merge(options)

        failed_stats = metrics[:metrics].select { |v| v[:label] == 'Failed' }.first
        value = failed_stats[:value].to_i

        return DashingContrib::RunnableJob::OK if value < user_options[:failed_warning_at]
        return DashingContrib::RunnableJob::WARNING if value >= user_options[:failed_warning_at] && value < user_options[:failed_critical_at]
        DashingContrib::RunnableJob::CRITICAL
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
dashing-contrib-0.2.9 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.8 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.7 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.6 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.5 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.4 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.3 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.2 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.1 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.2.0 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.14 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.12 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.11 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.10 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.9 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.8 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.7 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.6 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.5 lib/dashing-contrib/jobs/kue.rb
dashing-contrib-0.1.4 lib/dashing-contrib/jobs/kue.rb