Class: Datadog::Profiling::Tasks::Setup

Inherits:
Object
  • Object
show all
Defined in:
lib/ddtrace/profiling/tasks/setup.rb

Overview

Takes care of loading our extensions/monkey patches to handle fork() and validating if CPU-time profiling is usable

Constant Summary collapse

ACTIVATE_EXTENSIONS_ONLY_ONCE =
Datadog::Utils::OnlyOnce.new

Instance Method Summary collapse

Instance Method Details

#runObject



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ddtrace/profiling/tasks/setup.rb', line 13

def run
  ACTIVATE_EXTENSIONS_ONLY_ONCE.run do
    begin
      check_if_cpu_time_profiling_is_supported
      activate_forking_extensions
      setup_at_fork_hooks
    rescue StandardError, ScriptError => e
      Datadog.logger.warn do
        "Profiler extensions unavailable. Cause: #{e.message} Location: #{Array(e.backtrace).first}"
      end
    end
  end
end