Module: Datadog::Core::Diagnostics::EnvironmentCollector

Defined in:
lib/datadog/core/diagnostics/environment_logger.rb

Overview

Collects environment information for Core diagnostic logging

Class Method Summary collapse

Class Method Details

.collect_config!Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 64

def collect_config!
  {
    date: date,
    os_name: os_name,
    version: version,
    lang: lang,
    lang_version: lang_version,
    env: env,
    service: service,
    dd_version: dd_version,
    debug: debug,
    tags: tags,
    runtime_metrics_enabled: runtime_metrics_enabled,
    vm: vm,
    health_metrics_enabled: health_metrics_enabled,
    otlp_traces_export_enabled: otlp_traces_export_enabled,
    otlp_metrics_export_enabled: otlp_metrics_export_enabled,
    otlp_logs_export_enabled: otlp_logs_export_enabled,
  }
end

.dateString

Returns current time in ISO8601 format.

Returns:

  • (String)

    current time in ISO8601 format



86
87
88
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 86

def date
  Core::Utils::Time.now.utc.iso8601
end

.dd_versionString

Returns configured application version.

Returns:

  • (String)

    configured application version



124
125
126
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 124

def dd_version
  Datadog.configuration.version
end

.debugBoolean?

Returns debug mode enabled in configuration.

Returns:

  • (Boolean, nil)

    debug mode enabled in configuration



129
130
131
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 129

def debug
  !!Datadog.configuration.diagnostics.debug
end

.envString

Returns configured application environment.

Returns:

  • (String)

    configured application environment



114
115
116
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 114

def env
  Datadog.configuration.env
end

.health_metrics_enabledBoolean?

Returns health metrics enabled in configuration.

Returns:

  • (Boolean, nil)

    health metrics enabled in configuration



161
162
163
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 161

def health_metrics_enabled
  !!Datadog.configuration.health_metrics.enabled
end

.langString

Returns "ruby".

Returns:

  • (String)

    "ruby"



102
103
104
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 102

def lang
  Core::Environment::Ext::LANG
end

.lang_versionString

Supported Ruby language version. Will be distinct from VM version for non-MRI environments.

Returns:

  • (String)


109
110
111
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 109

def lang_version
  Core::Environment::Ext::LANG_VERSION
end

.os_nameString

Best portable guess of OS information.

Returns:

  • (String)

    platform string



92
93
94
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 92

def os_name
  RbConfig::CONFIG["host"]
end

.otlp_logs_export_enabledBoolean

Returns whether the tracer exports logs over OTLP.

Returns:

  • (Boolean)

    whether the tracer exports logs over OTLP



180
181
182
183
184
185
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 180

def otlp_logs_export_enabled
  logs = opentelemetry_settings&.logs
  # A "none" exporter skips the OTLP log record processor even when logs are enabled
  # (mirrors Datadog::OpenTelemetry::Ext::EXPORTER_NONE).
  !!(logs&.enabled && logs.exporter != "none")
end

.otlp_metrics_export_enabledBoolean

Returns whether the tracer exports metrics over OTLP.

Returns:

  • (Boolean)

    whether the tracer exports metrics over OTLP



172
173
174
175
176
177
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 172

def otlp_metrics_export_enabled
  metrics = opentelemetry_settings&.metrics
  # A "none" exporter skips the OTLP metric reader even when metrics are enabled
  # (mirrors Datadog::OpenTelemetry::Ext::EXPORTER_NONE).
  !!(metrics&.enabled && metrics.exporter != "none")
end

.otlp_traces_export_enabledBoolean

Returns whether the tracer exports traces over OTLP. Always false: Ruby exports spans in Datadog's native format and has no OTLP trace exporter.

Returns:

  • (Boolean)

    whether the tracer exports traces over OTLP. Always false: Ruby exports spans in Datadog's native format and has no OTLP trace exporter.



167
168
169
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 167

def otlp_traces_export_enabled
  false
end

.runtime_metrics_enabledBoolean?

Returns runtime metrics enabled in configuration.

Returns:

  • (Boolean, nil)

    runtime metrics enabled in configuration



142
143
144
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 142

def runtime_metrics_enabled
  Datadog.configuration.runtime_metrics.enabled
end

.serviceString

Returns configured application service name.

Returns:

  • (String)

    configured application service name



119
120
121
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 119

def service
  Datadog.configuration.service
end

.tagsHash?

Returns concatenated list of global tracer tags configured.

Returns:

  • (Hash, nil)

    concatenated list of global tracer tags configured



134
135
136
137
138
139
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 134

def tags
  tags = Datadog.configuration.tags
  return nil if tags.empty?

  hash_serializer(tags)
end

.versionString

Returns datadog version.

Returns:

  • (String)

    datadog version



97
98
99
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 97

def version
  Datadog::VERSION::STRING
end

.vmString?

Ruby VM name and version. Examples: "ruby-2.7.1", "jruby-9.2.11.1", "truffleruby-20.1.0"

Returns:

  • (String, nil)


149
150
151
152
153
154
155
156
157
158
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 149

def vm
  # RUBY_ENGINE_VERSION returns the VM version, which
  # will differ from RUBY_VERSION for non-mri VMs.
  if defined?(RUBY_ENGINE_VERSION)
    "#{RUBY_ENGINE}-#{RUBY_ENGINE_VERSION}"
  else
    # Ruby < 2.3 doesn't support RUBY_ENGINE_VERSION
    "#{RUBY_ENGINE}-#{RUBY_VERSION}"
  end
end