Module: Datadog::Core::ProcessDiscovery

Defined in:
lib/datadog/core/process_discovery.rb,
lib/datadog/core/process_discovery/tracer_memfd.rb,
ext/libdatadog_api/process_discovery.c

Overview

Class used to store tracer metadata in a native file descriptor.

Defined Under Namespace

Classes: TracerMemfd

Constant Summary collapse

ONLY_ONCE =
Core::Utils::OnlyOnce.new

Class Method Summary collapse

Class Method Details

._native_close_tracer_memfdObject



10
# File 'ext/libdatadog_api/process_discovery.c', line 10

static VALUE _native_close_tracer_memfd(DDTRACE_UNUSED VALUE _self, VALUE tracer_memfd, VALUE logger);

._native_store_tracer_metadataObject

Class cannot be instantiated from Ruby



8
# File 'ext/libdatadog_api/process_discovery.c', line 8

static VALUE _native_store_tracer_metadata(int argc, VALUE *argv, DDTRACE_UNUSED VALUE _self);

._native_to_rb_intObject



9
# File 'ext/libdatadog_api/process_discovery.c', line 9

static VALUE _native_to_rb_int(DDTRACE_UNUSED VALUE _self, VALUE tracer_memfd);

.publish(settings) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/datadog/core/process_discovery.rb', line 15

def publish(settings)
  if (libdatadog_api_failure = Datadog::Core::LIBDATADOG_API_FAILURE)
    Datadog.logger.debug { "Cannot enable process discovery: #{libdatadog_api_failure}" }
    return
  end

  ONLY_ONCE.run { apply_at_fork_patch }

   = (settings)

  shutdown!
  @file_descriptor = (Datadog.logger, **)
end

.shutdown!Object



29
30
31
32
# File 'lib/datadog/core/process_discovery.rb', line 29

def shutdown!
  @file_descriptor&.shutdown!(Datadog.logger)
  @file_descriptor = nil
end