Class: Karafka::Instrumentation::Callbacks::Statistics
- Inherits:
-
Object
- Object
- Karafka::Instrumentation::Callbacks::Statistics
- Defined in:
- lib/karafka/instrumentation/callbacks/statistics.rb
Overview
Statistics callback handler
Instance Method Summary collapse
-
#call(statistics) ⇒ Object
Emits decorated statistics to the monitor.
-
#initialize(subscription_group_id, consumer_group_id, client_name, monitor) ⇒ Statistics
constructor
A new instance of Statistics.
Constructor Details
#initialize(subscription_group_id, consumer_group_id, client_name, monitor) ⇒ Statistics
Returns a new instance of Statistics.
14 15 16 17 18 19 20 |
# File 'lib/karafka/instrumentation/callbacks/statistics.rb', line 14 def initialize(subscription_group_id, consumer_group_id, client_name, monitor) @subscription_group_id = subscription_group_id @consumer_group_id = consumer_group_id @client_name = client_name @monitor = monitor @statistics_decorator = ::Karafka::Core::Monitoring::StatisticsDecorator.new end |
Instance Method Details
#call(statistics) ⇒ Object
Emits decorated statistics to the monitor
24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/karafka/instrumentation/callbacks/statistics.rb', line 24 def call(statistics) # Emit only statistics related to our client # rdkafka does not have per-instance statistics hook, thus we need to make sure that we # emit only stats that are related to current producer. Otherwise we would emit all of # all the time. return unless @client_name == statistics['name'] @monitor.instrument( 'statistics.emitted', subscription_group_id: @subscription_group_id, consumer_group_id: @consumer_group_id, statistics: @statistics_decorator.call(statistics) ) end |