module Datadog::Configuration

Configuration provides a unique access point for configurations

Attributes

configuration[W]

Public Instance Methods

configuration() click to toggle source
# File lib/ddtrace/configuration.rb, line 14
def configuration
  @configuration ||= Settings.new
end
configure(target = configuration, opts = {}) { |target| ... } click to toggle source
# File lib/ddtrace/configuration.rb, line 18
def configure(target = configuration, opts = {})
  if target.is_a?(Settings)
    yield(target) if block_given?

    # Build immutable components from settings
    @components ||= nil
    @components = if @components
                    replace_components!(target, @components)
                  else
                    build_components(target)
                  end

    target
  else
    PinSetup.new(target, opts).call
  end
end
logger() click to toggle source
# File lib/ddtrace/configuration.rb, line 42
def logger
  if instance_variable_defined?(:@components) && @components
    @temp_logger = nil
    components.logger
  else
    # Use default logger without initializing components.
    # This prevents recursive loops while initializing.
    # e.g. Get logger --> Build components --> Log message --> Repeat...
    @temp_logger ||= begin
      logger = configuration.logger.instance || Datadog::Logger.new(STDOUT)
      logger.level = configuration.diagnostics.debug ? ::Logger::DEBUG : configuration.logger.level
      logger
    end
  end
end
shutdown!() click to toggle source
# File lib/ddtrace/configuration.rb, line 58
def shutdown!
  components.shutdown! if instance_variable_defined?(:@components) && @components
end

Protected Instance Methods

components() click to toggle source
# File lib/ddtrace/configuration.rb, line 64
def components
  @components ||= build_components(configuration)
end

Private Instance Methods

build_components(settings) click to toggle source
# File lib/ddtrace/configuration.rb, line 70
def build_components(settings)
  components = Components.new(settings)
  components.startup!(settings)
  components
end
replace_components!(settings, old) click to toggle source
# File lib/ddtrace/configuration.rb, line 76
def replace_components!(settings, old)
  components = Components.new(settings)

  old.shutdown!(components)
  components.startup!(settings)
  components
end