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