# File lib/new_relic/agent/instrumentation/http.rb, line 20
      def perform_with_newrelic_trace(request, options)
        wrapped_request = ::NewRelic::Agent::HTTPClients::HTTPRequest.new(request)

        begin
          segment = NewRelic::Agent::Transaction.start_external_request_segment(
            wrapped_request.type, wrapped_request.uri, wrapped_request.method)

          segment.add_request_headers wrapped_request

          response = perform_without_newrelic_trace(request, options)
          wrapped_response = ::NewRelic::Agent::HTTPClients::HTTPResponse.new response
          segment.read_response_headers wrapped_response

          response
        ensure
          segment.finish if segment
        end
      end