Module: Datadog::Profiling
- Defined in:
- lib/datadog/profiling.rb,
lib/datadog/profiling/ext.rb,
lib/datadog/profiling/flush.rb,
lib/datadog/profiling/exporter.rb,
lib/datadog/profiling/profiler.rb,
lib/datadog/profiling/component.rb,
lib/datadog/profiling/scheduler.rb,
lib/datadog/profiling/tasks/exec.rb,
lib/datadog/profiling/tasks/help.rb,
lib/datadog/profiling/tag_builder.rb,
lib/datadog/profiling/tasks/setup.rb,
lib/datadog/profiling/http_transport.rb,
lib/datadog/profiling/stack_recorder.rb,
lib/datadog/profiling/collectors/info.rb,
lib/datadog/profiling/collectors/stack.rb,
lib/datadog/profiling/native_extension.rb,
lib/datadog/profiling/ext/dir_monkey_patches.rb,
lib/datadog/profiling/collectors/thread_context.rb,
lib/datadog/profiling/collectors/code_provenance.rb,
lib/datadog/profiling/collectors/idle_sampling_helper.rb,
lib/datadog/profiling/collectors/dynamic_sampling_rate.rb,
lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb,
ext/datadog_profiling_native_extension/profiling.c,
ext/datadog_profiling_native_extension/native_extension_helpers.rb
Overview
Defined Under Namespace
Modules: Collectors, Component, Ext, NativeExtension, NativeExtensionHelpers, TagBuilder, Tasks
Classes: Exporter, Flush, HttpTransport, Profiler, Scheduler, StackRecorder
Class Method Summary
collapse
Class Method Details
.enabled? ⇒ Boolean
63
64
65
66
67
|
# File 'lib/datadog/profiling.rb', line 63
def self.enabled?
profiler = Datadog.send(:components).profiler
!!profiler&.send(:scheduler)&.running?
end
|
.replace_noop_allocation_count ⇒ Object
.start_if_enabled ⇒ Boolean
Starts the profiler, if the profiler is supported by in this runtime environment and if the profiler has been enabled in configuration.
27
28
29
30
31
32
33
34
35
|
# File 'lib/datadog/profiling.rb', line 27
def self.start_if_enabled
profiler = Datadog.send(:components).profiler
profiler&.start
!!profiler
end
|
.supported? ⇒ Boolean
10
11
12
|
# File 'lib/datadog/profiling.rb', line 10
def self.supported?
unsupported_reason.nil?
end
|
.unsupported_reason ⇒ Object
14
15
16
17
18
19
|
# File 'lib/datadog/profiling.rb', line 14
def self.unsupported_reason
native_library_compilation_skipped? || native_library_failed_to_load?
end
|
.wait_until_running(timeout_seconds: 5) ⇒ Object
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/datadog/profiling.rb', line 69
def self.wait_until_running(timeout_seconds: 5)
profiler = Datadog.send(:components).profiler
if profiler
worker = profiler.send(:worker)
worker.wait_until_running(timeout_seconds: timeout_seconds)
else
raise 'Profiler not enabled or available'
end
end
|