module Datadog::Diagnostics::EnvironmentLogger
A holistic collection of the environment in which ddtrace is running. This logger should allow for easy reporting by users to Datadog
support.
rubocop:disable Style/DoubleNegation
Constants
- REPL_PROGRAM_NAMES
Public Class Methods
log!(transport_responses)
click to toggle source
Outputs environment information to {Datadog.logger}. Executes only for the lifetime of the program.
# File lib/ddtrace/diagnostics/environment_logger.rb, line 15 def log!(transport_responses) return if @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: #{e.backtrace.first}") end
Private Class Methods
log?()
click to toggle source
Are we logging the environment data?
# File lib/ddtrace/diagnostics/environment_logger.rb, line 39 def log? startup_logs_enabled = Datadog.configuration.diagnostics.startup_logs.enabled if startup_logs_enabled.nil? !repl? # Suppress logs if we running in a REPL else startup_logs_enabled end end
log_environment!(line)
click to toggle source
# File lib/ddtrace/diagnostics/environment_logger.rb, line 30 def log_environment!(line) Datadog.logger.info("DATADOG TRACER CONFIGURATION - #{line}") end
log_error!(type, error)
click to toggle source
# File lib/ddtrace/diagnostics/environment_logger.rb, line 34 def log_error!(type, error) Datadog.logger.warn("DATADOG TRACER DIAGNOSTIC - #{type}: #{error}") end
repl?()
click to toggle source
# File lib/ddtrace/diagnostics/environment_logger.rb, line 50 def repl? REPL_PROGRAM_NAMES.include?($PROGRAM_NAME) end