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
- .collect_config! ⇒ Object
-
.date ⇒ String
Current time in ISO8601 format.
-
.dd_version ⇒ String
Configured application version.
-
.debug ⇒ Boolean?
Debug mode enabled in configuration.
-
.env ⇒ String
Configured application environment.
-
.health_metrics_enabled ⇒ Boolean?
Health metrics enabled in configuration.
-
.lang ⇒ String
"ruby".
-
.lang_version ⇒ String
Supported Ruby language version.
-
.os_name ⇒ String
Best portable guess of OS information.
-
.otlp_logs_export_enabled ⇒ Boolean
Whether the tracer exports logs over OTLP.
-
.otlp_metrics_export_enabled ⇒ Boolean
Whether the tracer exports metrics over OTLP.
-
.otlp_traces_export_enabled ⇒ Boolean
Whether the tracer exports traces over OTLP.
-
.runtime_metrics_enabled ⇒ Boolean?
Runtime metrics enabled in configuration.
-
.service ⇒ String
Configured application service name.
-
.tags ⇒ Hash?
Concatenated list of global tracer tags configured.
-
.version ⇒ String
Datadog version.
-
.vm ⇒ String?
Ruby VM name and version.
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: , 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 |
.date ⇒ String
Returns 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_version ⇒ String
Returns configured application version.
124 125 126 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 124 def dd_version Datadog.configuration.version end |
.debug ⇒ Boolean?
Returns 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 |
.env ⇒ String
Returns configured application environment.
114 115 116 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 114 def env Datadog.configuration.env end |
.health_metrics_enabled ⇒ Boolean?
Returns 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 |
.lang ⇒ String
Returns "ruby".
102 103 104 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 102 def lang Core::Environment::Ext::LANG end |
.lang_version ⇒ String
Supported Ruby language version. Will be distinct from VM version for non-MRI environments.
109 110 111 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 109 def lang_version Core::Environment::Ext::LANG_VERSION end |
.os_name ⇒ String
Best portable guess of OS information.
92 93 94 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 92 def os_name RbConfig::CONFIG["host"] end |
.otlp_logs_export_enabled ⇒ Boolean
Returns 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_enabled ⇒ Boolean
Returns 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_enabled ⇒ Boolean
Returns 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_enabled ⇒ Boolean?
Returns 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 |
.service ⇒ String
Returns configured application service name.
119 120 121 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 119 def service Datadog.configuration.service end |
.tags ⇒ Hash?
Returns concatenated list of global tracer tags configured.
134 135 136 137 138 139 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 134 def = Datadog.configuration. return nil if .empty? hash_serializer() end |
.version ⇒ String
Returns datadog version.
97 98 99 |
# File 'lib/datadog/core/diagnostics/environment_logger.rb', line 97 def version Datadog::VERSION::STRING end |
.vm ⇒ String?
Ruby VM name and version. Examples: "ruby-2.7.1", "jruby-9.2.11.1", "truffleruby-20.1.0"
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 |