Module: Datadog::Diagnostics::EnvironmentLogger

Defined in:
lib/ddtrace/diagnostics/environment_logger.rb

Overview

A holistic collection of the environment in which ddtrace is running. This logger should allow for easy reporting by users to Datadog support.

Class Method Summary collapse

Class Method Details

.log!(transport_responses) ⇒ Object

Outputs environment information to Datadog.logger. Executes only for the lifetime of the program.



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ddtrace/diagnostics/environment_logger.rb', line 15

def log!(transport_responses)
  return if (defined?(@executed) && @executed) || !log?

  @executed = true

  data = EnvironmentCollector.new.collect!(transport_responses)
  data.reject! { |_, v| v.nil? } # Remove empty values from hash output

  log_environment!(data.to_json)
  log_error!('Agent Error'.freeze, data[:agent_error]) if data[:agent_error]
rescue => e
  Datadog.logger.warn("Failed to collect environment information: #{e} Location: #{Array(e.backtrace).first}")
end