class Sidekiq::Statsd::ServerMiddleware
Attributes
client[R]
prefix[R]
Public Class Methods
new(client, options = {})
click to toggle source
# File lib/sidekiq/statsd/server_middleware.rb, line 9 def initialize(client, options = {}) @client = client @prefix = options.delete(:prefix) || "sidekiq" end
Public Instance Methods
call(worker, msg, queue) { || ... }
click to toggle source
# File lib/sidekiq/statsd/server_middleware.rb, line 14 def call(worker, msg, queue) if msg['enqueued_at'] # convert and round to ms latency = ((Time.now.to_f - msg['enqueued_at']) * 1000).round client.timing(metric_key(worker, "latency"), latency) end client.time(metric_key(worker, "duration")) do yield end client.increment(metric_key(worker, "success")) rescue => e client.increment(metric_key(worker, "failure")) raise e end
Private Instance Methods
metric_key(worker, key)
click to toggle source
# File lib/sidekiq/statsd/server_middleware.rb, line 33 def metric_key(worker, key) worker_name = worker.class.name.underscore.gsub("/", ".") [prefix, worker_name, key].reject(&:nil?).join(".") end