class RooOnRails::Sidekiq::MetricsWorker

Public Instance Methods

perform() click to toggle source
# File lib/roo_on_rails/sidekiq/metrics_worker.rb, line 19
def perform
  RooOnRails.statsd.batch do |stats|
    queues = QueueLatency.queues
    queue_stats(stats, queues)
    process_stats(stats, queues)
  end
end

Private Instance Methods

process_stats(stats, queues) click to toggle source
# File lib/roo_on_rails/sidekiq/metrics_worker.rb, line 38
def process_stats(stats, queues)
  process_stats = ProcessScaling.new(queues)
  stats.gauge('jobs.processes.max_normalised_latency', process_stats.max_normalised_latency)
  stats.gauge('jobs.processes.requested', process_stats.requested_processes)
  stats.gauge('jobs.processes.current', process_stats.current_processes)
end
queue_stats(stats, queues) click to toggle source
# File lib/roo_on_rails/sidekiq/metrics_worker.rb, line 29
def queue_stats(stats, queues)
  queues.each do |queue|
    tags = ["queue:#{queue.name}"]
    stats.gauge('jobs.queue.size', queue.size, tags: tags)
    stats.gauge('jobs.queue.latency', queue.latency, tags: tags)
    stats.gauge('jobs.queue.normalised_latency', queue.normalised_latency, tags: tags)
  end
end