Sha256: 0778091c8853e85d5ab8b1e2020ac4646fb87cc43b550c3f751ad2a225b2501d
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
require_relative 'configuration/proxy' require_relative 'configuration/resolver' module Datadog # Configuration provides a unique access point for configurations class Configuration InvalidIntegrationError = Class.new(StandardError) def initialize(options = {}) @registry = options.fetch(:registry, Datadog.registry) end def [](integration_name) integration = fetch_integration(integration_name) Proxy.new(integration) end def use(integration_name, options = {}) integration = fetch_integration(integration_name) settings = Proxy.new(integration) integration.sorted_options.each do |name| settings[name] = options.fetch(name, settings[name]) end integration.patch if integration.respond_to?(:patch) end def tracer(options = {}) instance = options.fetch(:instance, Datadog.tracer) instance.configure(options) instance.set_tags(options[:tags]) if options[:tags] instance.set_tags(env: options[:env]) if options[:env] instance.class.debug_logging = options.fetch(:debug, false) end private def fetch_integration(name) @registry[name] || raise(InvalidIntegrationError, "'#{name}' is not a valid integration.") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.11.0.beta2 | lib/ddtrace/configuration.rb |
ddtrace-0.11.0.beta1 | lib/ddtrace/configuration.rb |