Class: PrometheusExporter::Instrumentation::SidekiqStats

Inherits:
PeriodicStats
  • Object
show all
Defined in:
lib/prometheus_exporter/instrumentation/sidekiq_stats.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PeriodicStats

started?, stop, worker_loop

Class Method Details

.start(client: nil, frequency: 30) ⇒ Object



5
6
7
8
9
10
11
12
# File 'lib/prometheus_exporter/instrumentation/sidekiq_stats.rb', line 5

def self.start(client: nil, frequency: 30)
  client ||= PrometheusExporter::Client.default
  sidekiq_stats_collector = new

  worker_loop { client.send_json(sidekiq_stats_collector.collect) }

  super
end

Instance Method Details

#collectObject



14
15
16
# File 'lib/prometheus_exporter/instrumentation/sidekiq_stats.rb', line 14

def collect
  { type: "sidekiq_stats", stats: collect_stats }
end

#collect_statsObject



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/prometheus_exporter/instrumentation/sidekiq_stats.rb', line 18

def collect_stats
  stats = ::Sidekiq::Stats.new
  {
    "dead_size" => stats.dead_size,
    "enqueued" => stats.enqueued,
    "failed" => stats.failed,
    "processed" => stats.processed,
    "processes_size" => stats.processes_size,
    "retry_size" => stats.retry_size,
    "scheduled_size" => stats.scheduled_size,
    "workers_size" => stats.workers_size,
  }
end