class Excon::Connection

Public Class Methods

install_oneapm_instrumentation() click to toggle source
# File lib/one_apm/inst/http_clients/excon/connection.rb, line 26
def self.install_oneapm_instrumentation
  alias request_without_oneapm_trace request
  alias request request_with_oneapm_trace
end

Public Instance Methods

oneapm_connection_params() click to toggle source
# File lib/one_apm/inst/http_clients/excon/connection.rb, line 5
def oneapm_connection_params
  (@connection || @data)
end
oneapm_resolved_request_params(request_params) click to toggle source
# File lib/one_apm/inst/http_clients/excon/connection.rb, line 9
def oneapm_resolved_request_params(request_params)
  resolved = oneapm_connection_params.merge(request_params)
  resolved[:headers] = resolved[:headers].merge(request_params[:headers] || {})
  resolved
end
request_with_oneapm_trace(params, &block) click to toggle source
# File lib/one_apm/inst/http_clients/excon/connection.rb, line 15
def request_with_oneapm_trace(params, &block)
  orig_response = nil
  resolved_params = oneapm_resolved_request_params(params)
  wrapped_request = ::OneApm::Support::HTTPClients::ExconHTTPRequest.new(resolved_params)
  ::OneApm::Agent::CrossAppTracing.tl_trace_http_request(wrapped_request) do
    orig_response = request_without_oneapm_trace(resolved_params, &block)
    ::OneApm::Support::HTTPClients::ExconHTTPResponse.new(orig_response)
  end
  orig_response
end