Class: Datadog::Workers::RuntimeMetrics

Inherits:
Datadog::Worker show all
Extended by:
Forwardable
Includes:
Polling
Defined in:
lib/ddtrace/workers/runtime_metrics.rb

Overview

Emits runtime metrics asynchronously on a timed loop

Constant Summary

Constants included from Polling

Polling::SHUTDOWN_TIMEOUT

Instance Attribute Summary collapse

Attributes inherited from Datadog::Worker

#task

Instance Method Summary collapse

Methods included from Polling

#enabled=, #enabled?, included, #stop

Constructor Details

#initialize(options = {}) ⇒ RuntimeMetrics

Returns a new instance of RuntimeMetrics.



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ddtrace/workers/runtime_metrics.rb', line 18

def initialize(options = {})
  @metrics = options.fetch(:metrics, Runtime::Metrics.new)

  # Workers::Async::Thread settings
  self.fork_policy = options.fetch(:fork_policy, Workers::Async::Thread::FORK_POLICY_STOP)

  # Workers::IntervalLoop settings
  self.interval = options[:interval] if options.key?(:interval)
  self.back_off_ratio = options[:back_off_ratio] if options.key?(:back_off_ratio)
  self.back_off_max = options[:back_off_max] if options.key?(:back_off_max)

  self.enabled = options.fetch(:enabled, false)
end

Instance Attribute Details

#metricsObject (readonly)

Returns the value of attribute metrics.



15
16
17
# File 'lib/ddtrace/workers/runtime_metrics.rb', line 15

def metrics
  @metrics
end

Instance Method Details

#associate_with_span(*args) ⇒ Object



37
38
39
40
# File 'lib/ddtrace/workers/runtime_metrics.rb', line 37

def associate_with_span(*args)
  # Start the worker
  metrics.associate_with_span(*args).tap { perform }
end

#performObject



32
33
34
35
# File 'lib/ddtrace/workers/runtime_metrics.rb', line 32

def perform
  metrics.flush
  true
end