class Datadog::Transport::HTTP::Client
Routes, encodes, and sends tracer data to the trace agent via HTTP
.
Attributes
api[R]
Public Class Methods
new(api)
click to toggle source
# File lib/ddtrace/transport/http/client.rb, line 14 def initialize(api) @api = api end
Public Instance Methods
build_env(request)
click to toggle source
# File lib/ddtrace/transport/http/client.rb, line 46 def build_env(request) Env.new(request) end
send_request(request) { |api, env| ... }
click to toggle source
# File lib/ddtrace/transport/http/client.rb, line 18 def send_request(request, &block) # Build request into env env = build_env(request) # Get responses from API response = yield(api, env) # Update statistics update_stats_from_response!(response) response rescue StandardError => e message = "Internal error during HTTP transport request. Cause: #{e.message} Location: #{Array(e.backtrace).first}" # Log error if stats.consecutive_errors > 0 Datadog.logger.debug(message) else Datadog.logger.error(message) end # Update statistics update_stats_from_exception!(e) InternalErrorResponse.new(e) end