Sha256: bb48f9635e870e7f18ab0abb24b4aea5a947d3aa8305ccb2df5ba62d91206ef2

Contents?: true

Size: 988 Bytes

Versions: 14

Compression:

Stored size: 988 Bytes

Contents

# frozen_string_literal: true

module WaterDrop
  module Instrumentation
    # Instrumented is used to hookup external monitoring services to monitor how WaterDrop works
    class Notifications < ::Karafka::Core::Monitoring::Notifications
      # List of events that we support in the system and to which a monitor client can hook up
      # @note The non-error once support timestamp benchmarking
      EVENTS = %w[
        producer.closed

        message.produced_async
        message.produced_sync
        message.acknowledged
        message.buffered

        messages.produced_async
        messages.produced_sync
        messages.buffered

        buffer.flushed_async
        buffer.flushed_sync

        statistics.emitted

        error.occurred
      ].freeze

      # @return [WaterDrop::Instrumentation::Monitor] monitor instance for system instrumentation
      def initialize
        super
        EVENTS.each { |event| register_event(event) }
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
waterdrop-2.6.7 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.6 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.5 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.4 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.3 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.2 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.1 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.1.beta1 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.6.0 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.5.3 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.5.2 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.5.1 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.5.0 lib/waterdrop/instrumentation/notifications.rb
waterdrop-2.4.11 lib/waterdrop/instrumentation/notifications.rb