Class: Datadog::OpenFeature::Component
- Inherits:
-
Object
- Object
- Datadog::OpenFeature::Component
- Defined in:
- lib/datadog/open_feature/component.rb
Overview
This class is the entry point for the OpenFeature component
Instance Attribute Summary collapse
-
#engine ⇒ Object
readonly
Returns the value of attribute engine.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(settings, agent_settings, logger:, telemetry:) ⇒ Component
constructor
A new instance of Component.
- #shutdown! ⇒ Object
Constructor Details
#initialize(settings, agent_settings, logger:, telemetry:) ⇒ Component
Returns a new instance of Component.
47 48 49 50 51 52 53 |
# File 'lib/datadog/open_feature/component.rb', line 47 def initialize(settings, agent_settings, logger:, telemetry:) transport = Transport::HTTP.build(agent_settings: agent_settings, logger: logger) @worker = Exposures::Worker.new(settings: settings, transport: transport, telemetry: telemetry, logger: logger) reporter = Exposures::Reporter.new(@worker, telemetry: telemetry, logger: logger) @engine = EvaluationEngine.new(reporter, telemetry: telemetry, logger: logger) end |
Instance Attribute Details
#engine ⇒ Object (readonly)
Returns the value of attribute engine.
14 15 16 |
# File 'lib/datadog/open_feature/component.rb', line 14 def engine @engine end |
Class Method Details
.build(settings, agent_settings, logger:, telemetry:) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/datadog/open_feature/component.rb', line 16 def self.build(settings, agent_settings, logger:, telemetry:) return unless settings.respond_to?(:open_feature) && settings.open_feature.enabled unless settings.respond_to?(:remote) && settings.remote.enabled = 'OpenFeature could not be enabled as Remote Configuration is currently disabled. ' \ 'To enable Remote Configuration, see https://docs.datadoghq.com/remote_configuration/.' logger.warn() return end if RUBY_ENGINE != 'ruby' = 'OpenFeature could not be enabled as MRI is required, ' \ "but running on #{RUBY_ENGINE.inspect}" logger.warn() return end if (libdatadog_api_failure = Core::LIBDATADOG_API_FAILURE) = 'OpenFeature could not be enabled as `libdatadog` is not loaded: ' \ "#{libdatadog_api_failure.inspect}. For help solving this issue, " \ 'please contact Datadog support at https://docs.datadoghq.com/help/.' logger.warn() return end new(settings, agent_settings, logger: logger, telemetry: telemetry) end |
Instance Method Details
#shutdown! ⇒ Object
55 56 57 |
# File 'lib/datadog/open_feature/component.rb', line 55 def shutdown! @worker.graceful_shutdown end |