Method: Excon::Middleware::OneApmCrossAppTracing#finish_trace

Defined in:
lib/one_apm/inst/http_clients/excon/middleware.rb

#finish_trace(datum) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/one_apm/inst/http_clients/excon/middleware.rb', line 41

def finish_trace(datum)
  trace_data = datum[:connection] && datum[:connection].instance_variable_get(TRACE_DATA_IVAR)
  if trace_data
    datum[:connection].instance_variable_set(TRACE_DATA_IVAR, nil)
    t0, segment, wrapped_request = trace_data
    if datum[:response]
      wrapped_response = ::OneApm::Support::HTTPClients::ExconHTTPResponse.new(datum[:response])
    end
    state = ::OneApm::TransactionState.tl_get
    ::OneApm::Agent::CrossAppTracing.finish_trace(state, t0, segment, wrapped_request, wrapped_response)
  end
end