module Datadog::Contrib::Extensions::Configuration::Settings
Constants
- InvalidIntegrationError
Public Class Methods
included(base)
click to toggle source
# File lib/ddtrace/contrib/extensions.rb, line 44 def self.included(base) # Add the additional options to the global configuration settings base.instance_eval do option :registry, default: Registry.new end end
Public Instance Methods
[](integration_name, configuration_name = :default)
click to toggle source
# File lib/ddtrace/contrib/extensions.rb, line 51 def [](integration_name, configuration_name = :default) integration = fetch_integration(integration_name) integration.configuration(configuration_name) unless integration.nil? end
fetch_integration(name)
click to toggle source
# File lib/ddtrace/contrib/extensions.rb, line 85 def fetch_integration(name) registry[name] || raise(InvalidIntegrationError, "'#{name}' is not a valid integration.") end
instrument(integration_name, options = {}, &block)
click to toggle source
# File lib/ddtrace/contrib/extensions.rb, line 56 def instrument(integration_name, options = {}, &block) integration = fetch_integration(integration_name) unless integration.nil? || !integration.default_configuration.enabled configuration_name = options[:describes] || :default filtered_options = options.reject { |k, _v| k == :describes } integration.configure(configuration_name, filtered_options, &block) instrumented_integrations[integration_name] = integration # Add to activation list integrations_pending_activation << integration end end
Also aliased as: use
instrumented_integrations()
click to toggle source
# File lib/ddtrace/contrib/extensions.rb, line 76 def instrumented_integrations @instrumented_integrations ||= {} end
integrations_pending_activation()
click to toggle source
# File lib/ddtrace/contrib/extensions.rb, line 72 def integrations_pending_activation @integrations_pending_activation ||= Set.new end
reset!()
click to toggle source
Calls superclass method
# File lib/ddtrace/contrib/extensions.rb, line 80 def reset! instrumented_integrations.clear super end