Module: Datadog::Tracing::Contrib::Extensions::Configuration::Settings

Defined in:
lib/datadog/tracing/contrib/extensions.rb

Overview

Extensions for Datadog::Core::Configuration::Settings

Constant Summary collapse

InvalidIntegrationError =
Class.new(StandardError)

Instance Method Summary collapse

Instance Method Details

#[](integration_name, key = :default) ⇒ Datadog::Tracing::Contrib::Configuration::Settings

For the provided integration_name, resolves a matching configuration for the provided integration from an integration-specific key.

How the matching is performed is integration-specific.

Examples:

Datadog.configuration.tracing[:integration_name]
Datadog.configuration.tracing[:integration_name][:sub_configuration]

Parameters:

  • integration_name (Symbol)

    the integration name

  • key (Object) (defaults to: :default)

    the integration-specific lookup key

Returns:



156
157
158
159
# File 'lib/datadog/tracing/contrib/extensions.rb', line 156

def [](integration_name, key = :default)
  integration = fetch_integration(integration_name)
  integration.resolve(key) unless integration.nil?
end

#ignore_integration_load_errors=(value) ⇒ Object



188
189
190
# File 'lib/datadog/tracing/contrib/extensions.rb', line 188

def ignore_integration_load_errors=(value)
  @ignore_integration_load_errors = value
end

#instrument(integration_name, options = {}, &block) ⇒ Datadog::Tracing::Contrib::Integration Also known as: use

Applies instrumentation for the provided integration_name.

Options may be provided, that are specific to that instrumentation. See the instrumentation's settings file for a list of available options.

Examples:

Datadog.configure { |c| c.tracing.instrument :integration_name }
Datadog.configure { |c| c.tracing.instrument :integration_name, option_key: :option_value }

Parameters:

  • integration_name (Symbol)

    the integration name

  • options (Hash) (defaults to: {})

    the integration-specific configuration settings

Returns:



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/datadog/tracing/contrib/extensions.rb', line 125

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

  integration
end