Class: Elementary::Middleware::Statsd

Inherits:
Object
  • Object
show all
Defined in:
lib/elementary/middleware/statsd.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, opts = {}) ⇒ Statsd

Create a new Statsd middleware for Elementary

a Lookout::StatsdClient or other object implementing Statsd interface.

Parameters:

  • opts (Hash) (defaults to: {})

    Hash of optional parameters

Options Hash (opts):

  • :client (Lookout::StatsdClient)

    Set to an existing instance of



12
13
14
15
16
# File 'lib/elementary/middleware/statsd.rb', line 12

def initialize(app, opts={})
  @app = app

  @statsd = opts[:client] || Lookout::StatsdClient.new
end

Instance Method Details

#call(service, rpc_method, *params) ⇒ Object



18
19
20
21
22
# File 'lib/elementary/middleware/statsd.rb', line 18

def call(service, rpc_method, *params)
  @statsd.time(metric_name(service.name, rpc_method.method)) do
    @app.call(service, rpc_method, *params)
  end
end

#metric_name(service_name, method_name) ⇒ Object



24
25
26
27
# File 'lib/elementary/middleware/statsd.rb', line 24

def metric_name(service_name, method_name)
  service_name = service_name.gsub('::', '.').downcase
  return "elementary.#{service_name}.#{method_name}"
end