module NewRelic::Agent::Instrumentation::Ethon::Chain

Public Class Methods

instrument!() click to toggle source
# File lib/new_relic/agent/instrumentation/ethon/chain.rb, line 8
def self.instrument!
  ::Ethon::Easy.class_eval do
    include NewRelic::Agent::Instrumentation::Ethon::Easy

    alias_method(:fabricate_without_tracing, :fabricate)
    def fabricate(url, action_name, options)
      fabricate_with_tracing(url, action_name, options) { fabricate_without_tracing(url, action_name, options) }
    end

    alias_method(:headers_equals_without_tracing, :headers=)
    def headers=(headers)
      headers_equals_with_tracing(headers) { headers_equals_without_tracing(headers) }
    end

    alias_method(:perform_without_tracing, :perform)
    def perform(*args)
      perform_with_tracing(*args) { perform_without_tracing(*args) }
    end
  end

  ::Ethon::Multi.class_eval do
    include NewRelic::Agent::Instrumentation::Ethon::Multi

    alias_method(:perform_without_tracing, :perform)
    def perform(*args)
      perform_with_tracing(*args) { perform_without_tracing(*args) }
    end
  end
end

Public Instance Methods

fabricate(url, action_name, options) click to toggle source
# File lib/new_relic/agent/instrumentation/ethon/chain.rb, line 13
def fabricate(url, action_name, options)
  fabricate_with_tracing(url, action_name, options) { fabricate_without_tracing(url, action_name, options) }
end
headers=(headers) click to toggle source
# File lib/new_relic/agent/instrumentation/ethon/chain.rb, line 18
def headers=(headers)
  headers_equals_with_tracing(headers) { headers_equals_without_tracing(headers) }
end
perform(*args) click to toggle source
# File lib/new_relic/agent/instrumentation/ethon/chain.rb, line 23
def perform(*args)
  perform_with_tracing(*args) { perform_without_tracing(*args) }
end