Sha256: 0a2325bda2856e27278684a88a4d4035e4d328fc5f2708da40ec8a139ad04553

Contents?: true

Size: 978 Bytes

Versions: 7

Compression:

Stored size: 978 Bytes

Contents

# typed: false

module Datadog
  module Profiling
    module Collectors
      # Used to periodically sample threads, recording elapsed CPU-time and Wall-time between samples.
      # Triggering of this component (e.g. deciding when to take a sample) is implemented in
      # Collectors::CpuAndWallTimeWorker.
      # The stack collection itself is handled using the Datadog::Profiling::Collectors::Stack.
      # Almost all of this class is implemented as native code.
      #
      # Methods prefixed with _native_ are implemented in `collectors_cpu_and_wall_time.c`
      class CpuAndWallTime
        def initialize(recorder:, max_frames:)
          self.class._native_initialize(self, recorder, max_frames)
        end

        def inspect
          # Compose Ruby's default inspect with our custom inspect for the native parts
          result = super()
          result[-1] = "#{self.class._native_inspect(self)}>"
          result
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddtrace-1.5.2 lib/datadog/profiling/collectors/cpu_and_wall_time.rb
ddtrace-1.5.1 lib/datadog/profiling/collectors/cpu_and_wall_time.rb
ddtrace-1.5.0 lib/datadog/profiling/collectors/cpu_and_wall_time.rb
ddtrace-1.4.2 lib/datadog/profiling/collectors/cpu_and_wall_time.rb
ddtrace-1.4.1 lib/datadog/profiling/collectors/cpu_and_wall_time.rb
ddtrace-1.4.0 lib/datadog/profiling/collectors/cpu_and_wall_time.rb
ddtrace-1.3.0 lib/datadog/profiling/collectors/cpu_and_wall_time.rb