Module: Datadog::OpenTelemetry::SDK::Configurator
- Defined in:
- lib/datadog/opentelemetry/sdk/configurator.rb
Overview
The Configurator is responsible for setting wiring up different OpenTelemetry requirements together. Some of the requirements will be changed to Datadog versions.
Instance Method Summary collapse
-
#configure ⇒ Object
SDK 1.6.0+ calls logs_configuration_hook from configure.
-
#configure_propagation ⇒ Object
Ensure Datadog-configure propagation styles have are applied when configured.
- #initialize ⇒ Object
- #logs_configuration_hook ⇒ Object
- #metrics_configuration_hook ⇒ Object
-
#wrapped_exporters_from_env ⇒ Object
Ensure Datadog-configure trace writer is configured.
Instance Method Details
#configure ⇒ Object
SDK 1.6.0+ calls logs_configuration_hook from configure. https://github.com/open-telemetry/opentelemetry-ruby/blob/opentelemetry-sdk/v1.6.0/sdk/lib/opentelemetry/sdk/configurator.rb#L152 Older supported SDK versions do not, so we call it explicitly as a fallback. The flag prevents double-calling on newer SDK versions.
37 38 39 40 41 |
# File 'lib/datadog/opentelemetry/sdk/configurator.rb', line 37 def configure @datadog_logs_hook_called = false super logs_configuration_hook unless @datadog_logs_hook_called end |
#configure_propagation ⇒ Object
Ensure Datadog-configure propagation styles have are applied when configured.
DEV: Support configuring propagation through the environment variable
DEV: OTEL_PROPAGATORS, alias to DD_TRACE_PROPAGATION_STYLE
23 24 25 26 |
# File 'lib/datadog/opentelemetry/sdk/configurator.rb', line 23 def configure_propagation @propagators = [Propagator.new(Tracing::Contrib::HTTP)] super end |
#initialize ⇒ Object
14 15 16 17 |
# File 'lib/datadog/opentelemetry/sdk/configurator.rb', line 14 def initialize super @id_generator = IdGenerator end |
#logs_configuration_hook ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/datadog/opentelemetry/sdk/configurator.rb', line 58 def logs_configuration_hook @datadog_logs_hook_called = true components = Datadog.send(:components) unless components.settings.opentelemetry.logs.enabled super if defined?(super) return end begin require "opentelemetry-logs-sdk" rescue LoadError => exc components.logger.warn("Failed to load OpenTelemetry logs gems: #{exc.class}: #{exc.}") return end success = Datadog::OpenTelemetry::Logs.initialize!(components) unless success components.logger.warn("Falling back to OpenTelemetry default logs configuration") super if defined?(super) end end |
#metrics_configuration_hook ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/datadog/opentelemetry/sdk/configurator.rb', line 43 def metrics_configuration_hook components = Datadog.send(:components) return super unless components.settings.opentelemetry.metrics.enabled begin require "opentelemetry-metrics-sdk" rescue LoadError => exc components.logger.warn("Failed to load OpenTelemetry metrics gems: #{exc.class}: #{exc.}") return super end success = Datadog::OpenTelemetry::Metrics.initialize!(components) super unless success end |
#wrapped_exporters_from_env ⇒ Object
Ensure Datadog-configure trace writer is configured.
29 30 31 |
# File 'lib/datadog/opentelemetry/sdk/configurator.rb', line 29 def wrapped_exporters_from_env [SpanProcessor.new] end |