Class: NurseAndrea::QueueDepthReporter

Inherits:
Object
  • Object
show all
Defined in:
lib/nurse_andrea/queue_depth_reporter.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.report!Object

Auto-detects Solid Queue or Sidekiq and reports queue depths. Returns an array of metric hashes ready for MetricsShipper.



6
7
8
# File 'lib/nurse_andrea/queue_depth_reporter.rb', line 6

def self.report!
  new.report!
end

Instance Method Details

#report!Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/nurse_andrea/queue_depth_reporter.rb', line 10

def report!
  metrics = []
  now = Time.now.utc.iso8601(3)

  if solid_queue?
    metrics.concat(solid_queue_depths(now))
  elsif sidekiq?
    metrics.concat(sidekiq_depths(now))
  end

  metrics.each { |m| NurseAndrea::MetricsShipper.instance.enqueue(m) }
  metrics
end