Module: Metrics

Defined in:
lib/metrics.rb,
lib/metrics/handler.rb,
lib/metrics/railtie.rb,
lib/metrics/grouping.rb,
lib/metrics/instrumenter.rb,
lib/metrics/configuration.rb,
lib/metrics/instrumentable.rb,
lib/metrics/middleware_helpers.rb

Defined Under Namespace

Modules: Formatters, Helpers, Instrumentable, MiddlewareHelpers Classes: Configuration, Grouping, Handler, Instrumenter, Railtie

Class Method Summary collapse

Class Method Details

.configurationObject



76
77
78
# File 'lib/metrics.rb', line 76

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



80
81
82
# File 'lib/metrics.rb', line 80

def configure
  yield configuration
end

.group(*args, &block) ⇒ Object

Public: Group multiple instruments.

Example

Metrics.group 'sidekiq' do |group|
  group.instrument 'request.time' do
    begin
      @app.call(env)
    rescue Exception => e
      instrument 'exceptions', 1
      raise
    end
  end
end

Returns nothing.



68
69
70
# File 'lib/metrics.rb', line 68

def group(*args, &block)
  Handler.handle(Grouping.instrument(*args, &block))
end

.instrument(*args, &block) ⇒ Object

Public: Instrument a metric.

Example

# Instrument the duration of an event.
Metrics.instrument 'rack.request' do
  @app.call(env)
end

# Instrument a specific value.
Metrics.instrument 'workers.busy', 10, units: 'workers'

# Instrument something with a specific source.
Metrics.instrument 'sidekiq.queue', source: 'background' do
  yield
end

Returns nothing.



48
49
50
# File 'lib/metrics.rb', line 48

def instrument(*args, &block)
  Handler.handle(Instrumenter.instrument(*args, &block))
end

.subscribeObject



72
73
74
# File 'lib/metrics.rb', line 72

def subscribe
  $stderr.puts "Metrics#subscribe is deprecated and will be removed in 1.0."
end