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

Inherits:
Object
  • Object
show all
Defined in:
lib/datadog/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 =
Core::Utils::OnlyOnce.new

Instance Method Summary collapse

Instance Method Details

#runObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/datadog/profiling/tasks/setup.rb', line 11

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