Sha256: 8a465edb8df302f78449a98a3b0bbb2d4f7a5ed56f2c5cf6310291984b429537

Contents?: true

Size: 1.46 KB

Versions: 51

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

module Karafka
  module Instrumentation
    # Callbacks used to transport things from rdkafka
    module Callbacks
      # Callback that kicks in when consumer error occurs and is published in a background thread
      class Error
        # @param subscription_group_id [String] id of the current subscription group instance
        # @param consumer_group_id [String] id of the current consumer group
        # @param client_name [String] rdkafka client name
        def initialize(subscription_group_id, consumer_group_id, client_name)
          @subscription_group_id = subscription_group_id
          @consumer_group_id = consumer_group_id
          @client_name = client_name
        end

        # Runs the instrumentation monitor with error
        # @param client_name [String] rdkafka client name
        # @param error [Rdkafka::Error] error that occurred
        # @note It will only instrument on errors of the client of our consumer
        def call(client_name, error)
          # Emit only errors related to our client
          # Same as with statistics (mor explanation there)
          return unless @client_name == client_name

          ::Karafka.monitor.instrument(
            'error.occurred',
            caller: self,
            subscription_group_id: @subscription_group_id,
            consumer_group_id: @consumer_group_id,
            type: 'librdkafka.error',
            error: error
          )
        end
      end
    end
  end
end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
karafka-2.1.1 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.1.0 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.41 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.40 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.39 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.38 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.37 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.36 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.35 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.34 lib/karafka/instrumentation/callbacks/error.rb
karafka-2.0.33 lib/karafka/instrumentation/callbacks/error.rb