module Datadog::Transport::HTTP
Namespace for HTTP
transport components
Public Instance Methods
default(options = {}) { |transport| ... }
click to toggle source
Builds a new Transport::HTTP::Client
with default settings Pass a block to override any settings.
# File lib/ddtrace/transport/http.rb, line 28 def default(options = {}) new do |transport| transport.adapter :net_http, default_hostname, default_port transport.headers default_headers apis = API.defaults transport.api API::V4, apis[API::V4], fallback: API::V3, default: true transport.api API::V3, apis[API::V3], fallback: API::V2 transport.api API::V2, apis[API::V2] # Apply any settings given by options unless options.empty? # Change hostname/port if options.key?(:hostname) || options.key?(:port) hostname = options.fetch(:hostname, default_hostname) port = options.fetch(:port, default_port) transport.adapter :net_http, hostname, port end # Change default API transport.default_api = options[:api_version] if options.key?(:api_version) # Add headers transport.headers options[:headers] if options.key?(:headers) # Execute on_build callback options[:on_build].call(transport) if options[:on_build].is_a?(Proc) end # Call block to apply any customization, if provided. yield(transport) if block_given? end end
default_headers()
click to toggle source
# File lib/ddtrace/transport/http.rb, line 63 def default_headers { Datadog::Ext::Transport::HTTP::HEADER_META_LANG => Datadog::Ext::Runtime::LANG, Datadog::Ext::Transport::HTTP::HEADER_META_LANG_VERSION => Datadog::Ext::Runtime::LANG_VERSION, Datadog::Ext::Transport::HTTP::HEADER_META_LANG_INTERPRETER => Datadog::Ext::Runtime::LANG_INTERPRETER, Datadog::Ext::Transport::HTTP::HEADER_META_TRACER_VERSION => Datadog::Ext::Runtime::TRACER_VERSION }.tap do |headers| # Add container ID, if present. container_id = Datadog::Runtime::Container.container_id unless container_id.nil? headers[Datadog::Ext::Transport::HTTP::HEADER_CONTAINER_ID] = container_id end end end
default_hostname()
click to toggle source
# File lib/ddtrace/transport/http.rb, line 78 def default_hostname return default_url.hostname if default_url ENV.fetch(Datadog::Ext::Transport::HTTP::ENV_DEFAULT_HOST, Datadog::Ext::Transport::HTTP::DEFAULT_HOST) end
default_port()
click to toggle source
# File lib/ddtrace/transport/http.rb, line 84 def default_port return default_url.port if default_url ENV.fetch(Datadog::Ext::Transport::HTTP::ENV_DEFAULT_PORT, Datadog::Ext::Transport::HTTP::DEFAULT_PORT).to_i end
default_url()
click to toggle source
# File lib/ddtrace/transport/http.rb, line 90 def default_url url_env = ENV.fetch(Datadog::Ext::Transport::HTTP::ENV_DEFAULT_URL, nil) if url_env uri_parsed = URI.parse(url_env) uri_parsed if %w[http https].include?(uri_parsed.scheme) end end
new(&block)
click to toggle source
Builds a new Transport::HTTP::Client
# File lib/ddtrace/transport/http.rb, line 22 def new(&block) Builder.new(&block).to_transport end