class Sidekiq::Instrumental::Middleware::Base

Shared base code for measuring stats for server and client sidekiq

Attributes

config[R]

Public Class Methods

new(config) click to toggle source
# File lib/sidekiq/instrumental/middleware/base.rb, line 12
def initialize(config)
  @config = config
end

Public Instance Methods

call(worker_instance, msg, queue, _redis_pool = nil) { || ... } click to toggle source
# File lib/sidekiq/instrumental/middleware/base.rb, line 16
def call(worker_instance, msg, queue, _redis_pool = nil)
  start_time = Time.now
  result = yield
  elapsed = (Time.now - start_time).to_f

  return result unless config.enabled?

  track(
    ::Sidekiq::Stats.new,
    worker_instance,
    ::Sidekiq::Job.new(msg),
    queue, elapsed
  )

  result
end

Protected Instance Methods

build_class_key(klass_name) click to toggle source
# File lib/sidekiq/instrumental/middleware/base.rb, line 43
def build_class_key(klass_name)
  key = klass_name.underscore
          .gsub(/[^\d\w\-_\.]/, '_')
          .gsub(/\.{2,}/, '.')
  key.chomp!('.') while key[-1] == '.'
  key
end
gauge(*args) click to toggle source
# File lib/sidekiq/instrumental/middleware/base.rb, line 39
def gauge(*args)
  config.I.gauge(*args)
end
increment(*args) click to toggle source
# File lib/sidekiq/instrumental/middleware/base.rb, line 35
def increment(*args)
  config.I.increment(*args)
end