Sha256: 7751aed2bb3f283eb706c440677d0b581dbb899ceb03017e732eb7c497b3b06c
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# typed: true require 'ddtrace/transport/http/statistics' require 'ddtrace/transport/http/env' module Datadog module Transport module HTTP # Routes, encodes, and sends tracer data to the trace agent via HTTP. class Client include Transport::HTTP::Statistics attr_reader :api def initialize(api) @api = api end 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 def build_env(request) Env.new(request) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-1.0.0 | lib/ddtrace/transport/http/client.rb |
ddtrace-1.0.0.beta2 | lib/ddtrace/transport/http/client.rb |