lib/datadog/core/telemetry/collector.rb in ddtrace-1.10.1 vs lib/datadog/core/telemetry/collector.rb in ddtrace-1.11.0.beta1
- old
+ new
@@ -3,10 +3,11 @@
require 'etc'
require_relative '../configuration/agent_settings_resolver'
require_relative '../environment/ext'
require_relative '../environment/platform'
+require_relative '../utils/hash'
require_relative 'v1/application'
require_relative 'v1/dependency'
require_relative 'v1/host'
require_relative 'v1/integration'
require_relative 'v1/product'
@@ -16,10 +17,11 @@
module Core
module Telemetry
# Module defining methods for collecting metadata for telemetry
module Collector
include Datadog::Core::Configuration
+ using Core::Utils::Hash::Refinement
# Forms a hash of configuration key value pairs to be sent in the additional payload
def additional_payload
additional_payload_variables
end
@@ -39,16 +41,17 @@
)
end
# Forms a hash of standard key value pairs to be sent in the app-started event configuration
def configurations
- configurations = {
+ hash = {
DD_AGENT_HOST: Datadog.configuration.agent.host,
DD_AGENT_TRANSPORT: agent_transport,
DD_TRACE_SAMPLE_RATE: format_configuration_value(Datadog.configuration.tracing.sampling.default_rate),
}
- compact_hash(configurations)
+ hash.compact!
+ hash
end
# Forms a telemetry app-started dependencies object
def dependencies
Gem.loaded_specs.collect do |name, loaded_gem|
@@ -132,11 +135,12 @@
options['tracing.writer_options.flush_interval'] =
format_configuration_value(configuration.tracing.writer_options[:flush_interval])
options['logger.instance'] = configuration.logger.instance.class.to_s
options['appsec.enabled'] = configuration.dig('appsec', 'enabled') if configuration.respond_to?('appsec')
options['tracing.opentelemetry.enabled'] = !defined?(Datadog::OpenTelemetry::LOADED).nil?
- compact_hash(options)
+ options.compact!
+ options
end
def format_configuration_value(value)
# TODO: Add float if telemetry starts accepting it
case value
@@ -145,15 +149,10 @@
else
value.to_s
end
end
- # Manual implementation of hash.compact used because it is unsupported by older Ruby versions (<2.4)
- def compact_hash(hash)
- hash.delete_if { |_k, v| v.nil? }
- end
-
def env
Datadog.configuration.env
end
def service_name
@@ -220,10 +219,10 @@
desc += ", Loaded? #{integration.klass.class.loaded?}"
desc += ", Compatible? #{integration.klass.class.compatible?}"
desc += ", Patchable? #{integration.klass.class.patchable?}"
desc
else
- patch_error_result.to_s
+ patch_error_result.compact.to_s
end
end
end
end
end