Class: Karafka::Web::Tracking::Consumers::Listeners::Errors
- Includes:
- Helpers::ErrorInfo
- Defined in:
- lib/karafka/web/tracking/consumers/listeners/errors.rb
Overview
Listener related to tracking errors, DLQs, and retries metrics for the Web UI
Instance Method Summary collapse
-
#on_consumer_consuming_retry(_event) ⇒ Object
Count retries.
-
#on_dead_letter_queue_dispatched(_event) ⇒ Object
Count dead letter queue messages dispatches.
-
#on_error_occurred(event) ⇒ Object
Collects errors info and counts errors.
Methods included from Helpers::ErrorInfo
#extract_error_info, #extract_error_message
Instance Method Details
#on_consumer_consuming_retry(_event) ⇒ Object
Count retries
59 60 61 62 63 |
# File 'lib/karafka/web/tracking/consumers/listeners/errors.rb', line 59 def on_consumer_consuming_retry(_event) track do |sampler| sampler.counters[:retries] += 1 end end |
#on_dead_letter_queue_dispatched(_event) ⇒ Object
Count dead letter queue messages dispatches
50 51 52 53 54 |
# File 'lib/karafka/web/tracking/consumers/listeners/errors.rb', line 50 def on_dead_letter_queue_dispatched(_event) track do |sampler| sampler.counters[:dead] += 1 end end |
#on_error_occurred(event) ⇒ Object
Collects errors info and counts errors
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/karafka/web/tracking/consumers/listeners/errors.rb', line 20 def on_error_occurred(event) track do |sampler| # Collect extra info if it was a consumer related error. # Those come from user code details = if event[:caller].is_a?(Karafka::BaseConsumer) extract_consumer_info(event[:caller]) else {} end error_class, , backtrace = extract_error_info(event[:error]) sampler.errors << { schema_version: SCHEMA_VERSION, type: event[:type], error_class: error_class, error_message: , backtrace: backtrace, details: details, occurred_at: float_now, process: sampler.to_report[:process].slice(:name, :tags) } sampler.counters[:errors] += 1 end end |