Module: Julewire::Karafka::EventSeverity
- Defined in:
- lib/julewire/karafka/event_severity.rb
Constant Summary collapse
- FATAL_ERROR_TYPES =
%w[ runner.call.error swarm.supervisor.error worker.process.error ].freeze
- DEBUG_CONSUMER_EVENTS =
%w[ connection.listener.fetch_loop statistics.emitted swarm.manager.control ].freeze
- ERROR_CONSUMER_EVENTS =
%w[ swarm.manager.stopping swarm.manager.terminating ].freeze
- DEBUG_PRODUCER_EVENTS =
%w[ oauthbearer.token_refresh statistics.emitted ].freeze
Class Method Summary collapse
- .collection_count(value) ⇒ Object
- .consumer(name, event:, payload:) ⇒ Object
- .default_consumer_severity(name, event, payload) ⇒ Object
- .default_producer_severity(name) ⇒ Object
- .error_severity(event, payload) ⇒ Object
- .event_value(event, payload, key) ⇒ Object
- .fetch_loop_received_severity(event, payload) ⇒ Object
- .notice_signal_severity(event, payload) ⇒ Object
- .payload_severity(payload) ⇒ Object
- .payload_value(payload, key) ⇒ Object
- .producer(name, payload) ⇒ Object
- .raw_event_value(event, key) ⇒ Object
Class Method Details
.collection_count(value) ⇒ Object
90 91 92 93 94 95 |
# File 'lib/julewire/karafka/event_severity.rb', line 90 def collection_count(value) count = Core::Integration::Values::Read.hash_value(value, :count, default: Core::UNSET) return count unless count.equal?(Core::UNSET) value.size if value.respond_to?(:size) end |
.consumer(name, event:, payload:) ⇒ Object
29 30 31 |
# File 'lib/julewire/karafka/event_severity.rb', line 29 def consumer(name, event:, payload:) payload_severity(payload) || default_consumer_severity(name.to_s, event, payload) end |
.default_consumer_severity(name, event, payload) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/julewire/karafka/event_severity.rb', line 44 def default_consumer_severity(name, event, payload) return error_severity(event, payload) if name == "error.occurred" return fetch_loop_received_severity(event, payload) if name == "connection.listener.fetch_loop.received" return notice_signal_severity(event, payload) if name == "process.notice_signal" return :error if ERROR_CONSUMER_EVENTS.include?(name) return :debug if DEBUG_CONSUMER_EVENTS.include?(name) :info end |
.default_producer_severity(name) ⇒ Object
54 55 56 57 58 59 |
# File 'lib/julewire/karafka/event_severity.rb', line 54 def default_producer_severity(name) return :error if name == "error.occurred" return :debug if DEBUG_PRODUCER_EVENTS.include?(name) :info end |
.error_severity(event, payload) ⇒ Object
61 62 63 64 |
# File 'lib/julewire/karafka/event_severity.rb', line 61 def error_severity(event, payload) type = event_value(event, payload, :type).to_s FATAL_ERROR_TYPES.include?(type) ? :fatal : :error end |
.event_value(event, payload, key) ⇒ Object
78 79 80 |
# File 'lib/julewire/karafka/event_severity.rb', line 78 def event_value(event, payload, key) payload_value(payload, key) || raw_event_value(event, key) end |
.fetch_loop_received_severity(event, payload) ⇒ Object
66 67 68 69 70 71 |
# File 'lib/julewire/karafka/event_severity.rb', line 66 def fetch_loop_received_severity(event, payload) = event_value(event, payload, :messages_buffer) count = collection_count() count&.zero? ? :debug : :info end |
.notice_signal_severity(event, payload) ⇒ Object
73 74 75 76 |
# File 'lib/julewire/karafka/event_severity.rb', line 73 def notice_signal_severity(event, payload) signal = event_value(event, payload, :signal).to_s.upcase signal.end_with?("TTIN") ? :warn : :info end |
.payload_severity(payload) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/julewire/karafka/event_severity.rb', line 37 def payload_severity(payload) value = payload_value(payload, :severity) || payload_value(payload, :level) Core::Records::Severity.normalize(value) rescue StandardError nil end |
.payload_value(payload, key) ⇒ Object
82 83 84 |
# File 'lib/julewire/karafka/event_severity.rb', line 82 def payload_value(payload, key) Core::Integration::Values::Read.value(payload, key) end |
.producer(name, payload) ⇒ Object
33 34 35 |
# File 'lib/julewire/karafka/event_severity.rb', line 33 def producer(name, payload) payload_severity(payload) || default_producer_severity(name.to_s) end |
.raw_event_value(event, key) ⇒ Object
86 87 88 |
# File 'lib/julewire/karafka/event_severity.rb', line 86 def raw_event_value(event, key) Core::Integration::Values::Read.value(EventPayload.event_payload(event), key) end |