Class: Karafka::Web::Tracking::Consumers::Listeners::Connections
- Defined in:
- lib/karafka/web/tracking/consumers/listeners/connections.rb
Overview
Listener for listening on connections related events like polling, etc
Instance Method Summary collapse
-
#on_connection_listener_after_fetch_loop(event) ⇒ Object
When fetch loop is done it means this subscription group is no longer active and we should stop reporting.
-
#on_connection_listener_before_fetch_loop(event) ⇒ Object
Set first poll time before we start fetching so we always have a poll time and we don’t have to worry about it being always available.
-
#on_connection_listener_fetch_loop_received(event) ⇒ Object
Tracks the moment a poll happened on a given subscription group.
Instance Method Details
#on_connection_listener_after_fetch_loop(event) ⇒ Object
When fetch loop is done it means this subscription group is no longer active and we should stop reporting. The listener was stopped.
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/karafka/web/tracking/consumers/listeners/connections.rb', line 21 def on_connection_listener_after_fetch_loop(event) subscription_group = event[:subscription_group] sg_id = subscription_group.id cg_id = subscription_group.consumer_group.id track do |sampler| sampler.consumer_groups[cg_id][:subscription_groups].delete(sg_id) sampler.subscription_groups.delete(sg_id) end end |
#on_connection_listener_before_fetch_loop(event) ⇒ Object
Set first poll time before we start fetching so we always have a poll time and we don’t have to worry about it being always available
13 14 15 |
# File 'lib/karafka/web/tracking/consumers/listeners/connections.rb', line 13 def on_connection_listener_before_fetch_loop(event) on_connection_listener_fetch_loop_received(event) end |
#on_connection_listener_fetch_loop_received(event) ⇒ Object
Tracks the moment a poll happened on a given subscription group
35 36 37 38 39 40 41 42 43 |
# File 'lib/karafka/web/tracking/consumers/listeners/connections.rb', line 35 def on_connection_listener_fetch_loop_received(event) sg_id = event[:subscription_group].id track do |sampler| sampler.subscription_groups[sg_id] = { polled_at: monotonic_now } end end |