module Datadog::Contrib::Extensions::Configuration::Settings

Extensions for Datadog::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
use(integration_name, options = {}, &block)
Alias for: instrument