Sha256: 6e359d82c16183f75578f00f0f5da44a5862b7876e4359d241fa53bfda4d2fe7

Contents?: true

Size: 1.85 KB

Versions: 14

Compression:

Stored size: 1.85 KB

Contents

# frozen_string_literal: true

module Datadog
  module Core
    module Telemetry
      module V1
        # Describes payload for telemetry V1 API app-integrations-change event
        class AppEvent
          attr_reader \
            :additional_payload,
            :configuration,
            :dependencies,
            :integrations

          # @param additional_payload [Array<Telemetry::V1::Configuration>] List of Additional payload to track (any key
          #   value not mentioned and doesn't fit under a metric)
          # @param configuration [Array<Telemetry::V1::Configuration>] List of Tracer related configuration data
          # @param dependencies [Array<Telemetry::V1::Dependency>] List of all loaded modules requested by the app
          # @param integrations [Array<Telemetry::V1::Integration>] List of integrations that are available within the app
          #   and applicable to be traced
          def initialize(additional_payload: nil, configuration: nil, dependencies: nil, integrations: nil)
            @additional_payload = additional_payload
            @configuration = configuration
            @dependencies = dependencies
            @integrations = integrations
          end

          def to_h
            {}.tap do |hash|
              hash[:additional_payload] = map_hash(@additional_payload) if @additional_payload
              hash[:configuration] = map_hash(@configuration) if @configuration
              hash[:dependencies] = map_array(@dependencies) if @dependencies
              hash[:integrations] = map_array(@integrations) if @integrations
            end
          end

          private

          def map_hash(hash)
            hash.map do |k, v|
              { name: k.to_s, value: v }
            end
          end

          def map_array(arr)
            arr.map(&:to_h)
          end
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ddtrace-1.18.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.17.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.16.2 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.16.1 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.16.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.15.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.14.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.13.1 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.13.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.12.1 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.12.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.11.1 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.11.0 lib/datadog/core/telemetry/v1/app_event.rb
ddtrace-1.11.0.beta1 lib/datadog/core/telemetry/v1/app_event.rb