Module: Datadog::Contrib::Extensions::Configuration::Settings
- Defined in:
- lib/ddtrace/contrib/extensions.rb
Overview
Extensions for Datadog::Configuration::Settings
Constant Summary collapse
- InvalidIntegrationError =
Class.new(StandardError)
Class Method Summary collapse
Instance Method Summary collapse
- #[](integration_name, configuration_name = :default) ⇒ Object
- #fetch_integration(name) ⇒ Object
- #instrument(integration_name, options = {}, &block) ⇒ Object (also: #use)
- #instrumented_integrations ⇒ Object
- #integrations_pending_activation ⇒ Object
- #reset! ⇒ Object
Class Method Details
Instance Method Details
#[](integration_name, configuration_name = :default) ⇒ Object
51 52 53 54 |
# 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) ⇒ Object
85 86 87 88 |
# 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) ⇒ Object Also known as: use
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/ddtrace/contrib/extensions.rb', line 56 def instrument(integration_name, = {}, &block) integration = fetch_integration(integration_name) unless integration.nil? || !integration.default_configuration.enabled configuration_name = [:describes] || :default = .reject { |k, _v| k == :describes } integration.configure(configuration_name, , &block) instrumented_integrations[integration_name] = integration # Add to activation list integrations_pending_activation << integration end end |
#instrumented_integrations ⇒ Object
76 77 78 |
# File 'lib/ddtrace/contrib/extensions.rb', line 76 def instrumented_integrations @instrumented_integrations ||= {} end |
#integrations_pending_activation ⇒ Object
72 73 74 |
# File 'lib/ddtrace/contrib/extensions.rb', line 72 def integrations_pending_activation @integrations_pending_activation ||= Set.new end |
#reset! ⇒ Object
80 81 82 83 |
# File 'lib/ddtrace/contrib/extensions.rb', line 80 def reset! instrumented_integrations.clear super end |