Sha256: f568e76625b1d3e9698cf30958433c8560341de397dc2ef0c4fc5fbe80a9820f

Contents?: true

Size: 1.18 KB

Versions: 12

Compression:

Stored size: 1.18 KB

Contents

require 'forwardable'

require 'ddtrace/runtime/metrics'

require 'ddtrace/worker'
require 'ddtrace/workers/polling'

module Datadog
  module Workers
    # Emits runtime metrics asynchronously on a timed loop
    class RuntimeMetrics < Worker
      extend Forwardable
      include Workers::Polling

      attr_reader \
        :metrics

      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

      def perform
        metrics.flush
        true
      end

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

      def_delegators \
        :metrics,
        :register_service
    end
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
ddtrace-0.43.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.42.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.41.0 lib/ddtrace/workers/runtime_metrics.rb
ls-trace-0.2.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.40.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.39.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.38.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.37.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.36.0 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.35.2 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.35.1 lib/ddtrace/workers/runtime_metrics.rb
ddtrace-0.35.0 lib/ddtrace/workers/runtime_metrics.rb