Sha256: 8faf26155ab20a072fe6bb358883f25a80553c19deb5ed0923b08e362f86e3cf

Contents?: true

Size: 874 Bytes

Versions: 14

Compression:

Stored size: 874 Bytes

Contents

# frozen_string_literal: true

require_relative '../worker'
require_relative '../workers/polling'

module Datadog
  module Core
    module Telemetry
      # Periodically (every DEFAULT_INTERVAL_SECONDS) sends a heartbeat event to the telemetry API.
      class Heartbeat < Core::Worker
        include Core::Workers::Polling

        def initialize(heartbeat_interval_seconds:, enabled: true, &block)
          # Workers::Polling settings
          self.enabled = enabled
          # Workers::IntervalLoop settings
          self.loop_base_interval = heartbeat_interval_seconds
          self.fork_policy = Core::Workers::Async::Thread::FORK_POLICY_STOP
          super(&block)
          start
        end

        def loop_wait_before_first_iteration?
          true
        end

        private

        def start
          perform
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
datadog-2.0.0.beta1 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.21.1 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.21.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.20.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.19.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.18.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.17.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.16.2 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.16.1 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.16.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.15.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.14.0 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.13.1 lib/datadog/core/telemetry/heartbeat.rb
ddtrace-1.13.0 lib/datadog/core/telemetry/heartbeat.rb