# File lib/new_relic/agent/instrumentation/excon/middleware.rb, line 14
      def request_call(datum) #THREAD_LOCAL_ACCESS
        begin
          # Only instrument this request if we haven't already done so, because
          # we can get request_call multiple times for requests marked as
          # :idempotent in the options, but there will be only a single
          # accompanying response_call/error_call.
          if datum[:connection] && !datum[:connection].instance_variable_get(TRACE_DATA_IVAR)
            wrapped_request = ::NewRelic::Agent::HTTPClients::ExconHTTPRequest.new(datum)
            segment = NewRelic::Agent::Transaction.start_external_request_segment(
                        wrapped_request.type, wrapped_request.uri, wrapped_request.method)

            segment.add_request_headers wrapped_request

            datum[:connection].instance_variable_set(TRACE_DATA_IVAR, segment)
          end
        rescue => e
          NewRelic::Agent.logger.debug(e)
        end
        @stack.request_call(datum)
      end