Sha256: 373f1509fe6995df6292a3f88f5bedfdc238ab73dcb6c1ee3bfc0800e338a4db

Contents?: true

Size: 1.13 KB

Versions: 24

Compression:

Stored size: 1.13 KB

Contents

require 'sidekiq/api'
module DashingContrib
  module Jobs
    module Sidekiq
      extend DashingContrib::RunnableJob

      def self.metrics(options)
        stats = ::Sidekiq::Stats.new
        metrics = [
            { label: 'Processed', value: stats.processed },
            { label: 'Failed',    value: stats.failed },
            { label: 'Retries',   value: stats.retry_size },
            { label: 'Dead',      value: stats.dead_size },
            { label: 'Enqueued',  value: stats.enqueued }
        ]
        { metrics: metrics }
      end

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

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

        value = failed_stats[:value]
        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/sidekiq.rb
dashing-contrib-0.2.8 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.7 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.6 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.5 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.4 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.3 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.2 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.1 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.2.0 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.14 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.12 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.11 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.10 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.9 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.8 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.7 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.6 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.5 lib/dashing-contrib/jobs/sidekiq.rb
dashing-contrib-0.1.4 lib/dashing-contrib/jobs/sidekiq.rb