Class: Sidekiq::Statsd::ServerMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/sidekiq/statsd/server_middleware.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client, options = {}) ⇒ ServerMiddleware

Returns a new instance of ServerMiddleware.



9
10
11
12
# File 'lib/sidekiq/statsd/server_middleware.rb', line 9

def initialize(client, options = {})
  @client = client
  @prefix = options.delete(:prefix) || "sidekiq"
end

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



7
8
9
# File 'lib/sidekiq/statsd/server_middleware.rb', line 7

def client
  @client
end

#prefixObject (readonly)

Returns the value of attribute prefix.



7
8
9
# File 'lib/sidekiq/statsd/server_middleware.rb', line 7

def prefix
  @prefix
end

Instance Method Details

#call(worker, msg, queue) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 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