Sha256: 648fff6e61a842f815c2d18189d0e95c5d913bfff5d52e5e0acd11616f0bee18

Contents?: true

Size: 826 Bytes

Versions: 10

Compression:

Stored size: 826 Bytes

Contents

# frozen_string_literal: true

# collects stats from resque
module PrometheusExporter::Instrumentation
  class Resque < PeriodicStats
    def self.start(client: nil, frequency: 30)
      resque_collector = new
      client ||= PrometheusExporter::Client.default

      worker_loop do
        client.send_json(resque_collector.collect)
      end

      super
    end

    def collect
      metric = {}
      metric[:type] = "resque"
      collect_resque_stats(metric)
      metric
    end

    def collect_resque_stats(metric)
      info = ::Resque.info

      metric[:processed_jobs] = info[:processed]
      metric[:failed_jobs] = info[:failed]
      metric[:pending_jobs] = info[:pending]
      metric[:queues] = info[:queues]
      metric[:worker] = info[:workers]
      metric[:working] = info[:working]
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
prometheus_exporter-2.1.1 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.1.0 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.8 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.7 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.6 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.5 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.4 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.3 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.2 lib/prometheus_exporter/instrumentation/resque.rb
prometheus_exporter-2.0.1 lib/prometheus_exporter/instrumentation/resque.rb