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