lib/ddtrace/contrib/configuration/settings.rb in ls-trace-0.1.2 vs lib/ddtrace/contrib/configuration/settings.rb in ls-trace-0.2.0
- old
+ new
@@ -7,18 +7,22 @@
class Settings
include Datadog::Configuration::Base
option :analytics_enabled, default: false
option :analytics_sample_rate, default: 1.0
+ option :enabled, default: true
option :service_name
option :tracer do |o|
o.delegate_to { Datadog.tracer }
+ o.on_set do |_value|
+ log_deprecation_warning(:tracer)
+ end
end
def configure(options = {})
self.class.options.dependency_order.each do |name|
- self[name] = options.fetch(name, self[name])
+ self[name] = options[name] if options.key?(name)
end
yield(self) if block_given?
end
@@ -26,9 +30,24 @@
respond_to?(name) ? send(name) : get_option(name)
end
def []=(name, value)
respond_to?("#{name}=") ? send("#{name}=", value) : set_option(name, value)
+ end
+
+ DEPRECATION_WARNING = %(
+ Explicitly providing a tracer instance is DEPRECATED.
+ It's recommended to not provide an explicit tracer instance
+ and let Datadog::Contrib::Configuration::Settings resolve
+ the correct tracer internally.
+ ).freeze
+
+ include Datadog::Patcher # DEV includes #do_once here. We should move that logic to a generic component.
+
+ def log_deprecation_warning(method_name)
+ do_once(method_name) do
+ Datadog.logger.warn("#{method_name}:#{DEPRECATION_WARNING}:#{caller.join("\n")}")
+ end
end
end
end
end
end