Method: NewRelic::Agent::Tracer.start_external_request_segment

Defined in:
lib/new_relic/agent/tracer.rb

.start_external_request_segment(library:, uri:, procedure:, start_time: nil, parent: nil) ⇒ ExternalRequestSegment

Creates and starts an external request segment using the given library, URI, and procedure. This is used to time external calls made over HTTP.

Parameters:

  • library (String)

    a string of the class name of the library used to make the external call, for example, 'Net::HTTP'.

  • uri (String, URI)

    indicates the URI to which the external request is being made. The URI should begin with the protocol, for example, 'github.com'.

  • procedure (String)

    the HTTP method being used for the external request as a string, for example, 'GET'.

  • start_time (optional, Time) (defaults to: nil)

    a Time instance denoting the start time of the segment. Value is set by AbstractSegment#start if not given.

  • parent (optional, Segment) (defaults to: nil)

    Use for the rare cases (such as async) where the parent segment should be something other than the current segment

Returns:

  • (ExternalRequestSegment)

    the newly created segment; you must call finish on it at the end of the code you're tracing


333
334
335
336
337
338
339
340
341
342
343
344
345
346
# File 'lib/new_relic/agent/tracer.rb', line 333

def start_external_request_segment(library:,
                                   uri:,
                                   procedure:,
                                   start_time: nil,
                                   parent: nil)

  segment = Transaction::ExternalRequestSegment.new library, uri, procedure, start_time
  start_and_add_segment segment, parent

rescue ArgumentError
  raise
rescue => exception
  log_error('start_external_request_segment', exception)
end