class Faraday::Instrumentation

Attributes

options[R]

Public Class Methods

new(app, options = {}) click to toggle source
Calls superclass method
# File lib/faraday/instrumentation.rb, line 8
def initialize(app, options = {})
  super(app)
  @options = { metric: 'faraday.request', path: false }.merge(options)
end

Public Instance Methods

call(env) click to toggle source
# File lib/faraday/instrumentation.rb, line 13
def call(env)
  time = Time.now
  response = @app.call(env)
  duration = (Time.now - time) * 1000.0

  request_metrics response.status, duration, metric: metric, source: source(env)

  response
end

Private Instance Methods

metric() click to toggle source
# File lib/faraday/instrumentation.rb, line 32
def metric
  options[:metric]
end
source(env) click to toggle source
# File lib/faraday/instrumentation.rb, line 26
def source(env)
  method = env[:method]
  path   = options[:path] ? env[:url].path.gsub(/\//, '.') : ''
  "#{method}#{path}"
end