Class: Datadog::OpenTelemetry::Logs

Inherits:
Object
  • Object
show all
Includes:
SignalConfiguration
Defined in:
lib/datadog/opentelemetry/logs.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(components) ⇒ Logs

Returns a new instance of Logs.



21
22
23
24
25
26
# File 'lib/datadog/opentelemetry/logs.rb', line 21

def initialize(components)
  @logger = components.logger
  @settings = components.settings
  @agent_host = components.agent_settings.hostname
  @agent_ssl = components.agent_settings.ssl
end

Class Method Details

.initialize!(components) ⇒ Object



11
12
13
14
15
16
17
18
19
# File 'lib/datadog/opentelemetry/logs.rb', line 11

def self.initialize!(components)
  new(components).configure_logs_sdk
  true
rescue => exc
  components.logger.warn(
    "Failed to initialize OpenTelemetry logs: #{exc.class}: #{exc.message}\n#{(exc.backtrace || []).join("\n")}"
  )
  false
end

Instance Method Details

#configure_logs_sdk ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/datadog/opentelemetry/logs.rb', line 28

def configure_logs_sdk
  provider = ::OpenTelemetry.logger_provider
  provider.shutdown if provider.is_a?(::OpenTelemetry::SDK::Logs::LoggerProvider)

  resource = create_resource
  provider = ::OpenTelemetry::SDK::Logs::LoggerProvider.new(resource: resource)
  processor_configured = configure_log_record_processor(provider)
  ::OpenTelemetry.logger_provider = provider

  disable_log_injection if processor_configured
end