Class: Mettric::SidekiqMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/mettric/sidekiq_middleware.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(_options = {}) ⇒ SidekiqMiddleware

Returns a new instance of SidekiqMiddleware.



16
17
# File 'lib/mettric/sidekiq_middleware.rb', line 16

def initialize(_options = {})
end

Class Method Details

.installObject



5
6
7
8
9
10
11
12
13
14
# File 'lib/mettric/sidekiq_middleware.rb', line 5

def self.install
  return if @installed
  return unless Kernel.const_defined?(:Sidekiq)
  @installed = true
  Sidekiq.configure_server do |config|
    config.server_middleware do |chain|
      chain.add Mettric::SidekiqMiddleware
    end
  end
end

Instance Method Details

#call(worker, msg, queue) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mettric/sidekiq_middleware.rb', line 19

def call(worker, msg, queue)
  opts = worker.class.sidekiq_options['mettric']

  # Don't do anything if we're told to skip this class
  if opts != true and opts != nil
    return yield
  end

  # Tracking under this name
  service = "sidekiq.#{queue.to_s.underscore}.#{worker.class.name.underscore}"

  # Yield & time
  (service: service, tags: ['sidekiq']) do
    yield
  end
rescue Mettric::Error => _e
end