Sha256: 8dc03a0c2fe6e75ed69014cbc0a0d5c15bc39f56361d1913fe1b6d0294a159df

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

require 'ddtrace/runtime/identity'
require 'ddtrace/runtime/socket'

module Datadog
  module Profiling
    # Entity class used to represent metadata for a given profile
    Flush = Struct.new(
      :start,
      :finish,
      :event_groups,
      :event_count,
      :runtime_id,
      :service,
      :env,
      :version,
      :host,
      :language,
      :runtime_engine,
      :runtime_platform,
      :runtime_version,
      :profiler_version,
      :tags
    ) do
      def initialize(*args)
        super
        self.runtime_id = runtime_id || Datadog::Runtime::Identity.id
        self.service = service || Datadog.configuration.service
        self.env = env || Datadog.configuration.env
        self.version = version || Datadog.configuration.version
        self.host = host || Datadog::Runtime::Socket.hostname
        self.language = language || Datadog::Runtime::Identity.lang
        self.runtime_engine = runtime_engine || Datadog::Runtime::Identity.lang_engine
        self.runtime_platform = runtime_platform || Datadog::Runtime::Identity.lang_platform
        self.runtime_version = runtime_version || Datadog::Runtime::Identity.lang_version
        self.profiler_version = profiler_version || Datadog::Runtime::Identity.tracer_version
        self.tags = tags || Datadog.configuration.tags
      end
    end

    # Represents a collection of events of a specific type being flushed.
    EventGroup = Struct.new(:event_class, :events).freeze
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ddtrace-0.50.0 lib/ddtrace/profiling/flush.rb