Class: Nightwing::Sidekiq::QueueStats

Inherits:
Base
  • Object
show all
Defined in:
lib/nightwing/sidekiq/queue_stats.rb

Overview

Sidekiq server middleware for measuring Sidekiq queues

Instance Attribute Summary

Attributes inherited from Base

#logger, #namespace

Instance Method Summary collapse

Methods inherited from Base

#client, #initialize

Constructor Details

This class inherits a constructor from Nightwing::Sidekiq::Base

Instance Method Details

#call(_worker, _msg, queue) ⇒ Object

Sends Sidekiq queue metrics to client then yields

Parameters:

  • _worker (Sidekiq::Worker)

    The worker the job belongs to.

  • _msg (Hash)

    The job message.

  • queue (String)

    The current queue.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/nightwing/sidekiq/queue_stats.rb', line 19

def call(_worker, _msg, queue)
  sidekiq_queue = ::Sidekiq::Queue.new(queue)
  queue_namespace = metrics.for(queue: queue)

  client.measure "#{queue_namespace}.size", sidekiq_queue.size
  client.measure "#{queue_namespace}.latency", sidekiq_queue.latency
  client.increment "#{queue_namespace}.processed"

  begin
    yield
  rescue
    client.increment "#{queue_namespace}.failed"
    raise
  end
end