Sha256: e7075c4342c8c3c75955705b790a46448aa144b999f3aa77c84c7b90eb0f3d1d

Contents?: true

Size: 1.27 KB

Versions: 32

Compression:

Stored size: 1.27 KB

Contents

# frozen_string_literal: true

module Karafka
  module Web
    module Tracking
      module Consumers
        module Listeners
          # Tracks pausing and un-pausing of topics partitions for both user requested and
          # automatic events.
          class Pausing < Base
            # Indicate pause
            #
            # @param event [Karafka::Core::Monitoring::Event]
            def on_client_pause(event)
              track do |sampler|
                sampler.pauses << pause_id(event)
              end
            end

            # Indicate pause ended
            #
            # @param event [Karafka::Core::Monitoring::Event]
            def on_client_resume(event)
              track do |sampler|
                sampler.pauses.delete pause_id(event)
              end
            end

            private

            # @param event [Karafka::Core::Monitoring::Event]
            # @return [String] pause id built from consumer group and topic details
            def pause_id(event)
              topic = event[:topic]
              partition = event[:partition]
              consumer_group_id = event[:subscription_group].consumer_group.id

              [consumer_group_id, topic, partition].join('-')
            end
          end
        end
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
karafka-web-0.7.10 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.9 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.8 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.7 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.6 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.5 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.4 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.3 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.2 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.1 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.7.0 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.6.3 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.6.2 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.6.1 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.6.0 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.5.2 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.5.1 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.5.0 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.4.1 lib/karafka/web/tracking/consumers/listeners/pausing.rb
karafka-web-0.4.0 lib/karafka/web/tracking/consumers/listeners/pausing.rb