lib/ddtrace/configuration/settings.rb in ddtrace-0.23.3 vs lib/ddtrace/configuration/settings.rb in ddtrace-0.24.0

- old
+ new

@@ -1,6 +1,7 @@ require 'ddtrace/ext/analytics' +require 'ddtrace/ext/distributed' require 'ddtrace/ext/runtime' require 'ddtrace/configuration/options' require 'ddtrace/environment' require 'ddtrace/tracer' @@ -15,14 +16,36 @@ option :analytics_enabled, default: -> { env_to_bool(Ext::Analytics::ENV_TRACE_ANALYTICS_ENABLED, nil) }, lazy: true + option :report_hostname, + default: -> { env_to_bool(Ext::NET::ENV_REPORT_HOSTNAME, false) }, + lazy: true + option :runtime_metrics_enabled, default: -> { env_to_bool(Ext::Runtime::Metrics::ENV_ENABLED, false) }, lazy: true + # Look for all headers by default + option :propagation_extract_style, + default: lambda { + env_to_list(Ext::DistributedTracing::PROPAGATION_EXTRACT_STYLE_ENV, + [Ext::DistributedTracing::PROPAGATION_STYLE_DATADOG, + Ext::DistributedTracing::PROPAGATION_STYLE_B3, + Ext::DistributedTracing::PROPAGATION_STYLE_B3_SINGLE_HEADER]) + }, + lazy: true + + # Only inject Datadog headers by default + option :propagation_inject_style, + default: lambda { + env_to_list(Ext::DistributedTracing::PROPAGATION_INJECT_STYLE_ENV, + [Ext::DistributedTracing::PROPAGATION_STYLE_DATADOG]) + }, + lazy: true + option :tracer, default: Tracer.new def initialize(options = {}) configure(options) end @@ -32,9 +55,15 @@ next unless options.key?(name) respond_to?("#{name}=") ? send("#{name}=", options[name]) : set_option(name, options[name]) end yield(self) if block_given? + end + + def distributed_tracing + # TODO: Move distributed tracing configuration to it's own Settings sub-class + # DEV: We do this to fake `Datadog.configuration.distributed_tracing.propagation_inject_style` + self end def runtime_metrics(options = nil) runtime_metrics = get_option(:tracer).writer.runtime_metrics return runtime_metrics if options.nil?