Class: Datadog::Transport::HTTP::Client
- Inherits:
-
Object
- Object
- Datadog::Transport::HTTP::Client
- Includes:
- Statistics
- Defined in:
- lib/ddtrace/transport/http/client.rb
Overview
Routes, encodes, and sends tracer data to the trace agent via HTTP.
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
Returns the value of attribute api.
Instance Method Summary collapse
- #build_env(request) ⇒ Object
-
#initialize(api) ⇒ Client
constructor
A new instance of Client.
- #send_request(request, &block) ⇒ Object
Methods included from Statistics
Constructor Details
#initialize(api) ⇒ Client
Returns a new instance of Client.
13 14 15 |
# File 'lib/ddtrace/transport/http/client.rb', line 13 def initialize(api) @api = api end |
Instance Attribute Details
#api ⇒ Object (readonly)
Returns the value of attribute api.
11 12 13 |
# File 'lib/ddtrace/transport/http/client.rb', line 11 def api @api end |
Instance Method Details
#build_env(request) ⇒ Object
44 45 46 |
# File 'lib/ddtrace/transport/http/client.rb', line 44 def build_env(request) Env.new(request) end |
#send_request(request, &block) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ddtrace/transport/http/client.rb', line 17 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 = "Internal error during HTTP transport request. Cause: #{e.} Location: #{e.backtrace.first}" # Log error if stats.consecutive_errors > 0 Datadog.logger.debug() else Datadog.logger.error() end # Update statistics update_stats_from_exception!(e) InternalErrorResponse.new(e) end |