module Mnemosyne::Probes::Msgr::Consumer::Instrumentation
Public Instance Methods
dispatch(message)
click to toggle source
Calls superclass method
# File lib/mnemosyne/probes/msgr/consumer.rb, line 16 def dispatch(message) route = message.route metadata = message.metadata headers = metadata.headers || {} delivery_info = message.delivery_info origin = headers.delete('mnemosyne.origin') transaction = headers.delete('mnemosyne.transaction') do ::SecureRandom.uuid end trace = ::Mnemosyne::Instrumenter.trace NAME, transaction: transaction, origin: origin if trace trace.meta[:properties] = { content_type: metadata.content_type, priority: metadata.priority, headers: metadata.headers, type: metadata.type, reply_to: metadata.reply_to, correlation_id: metadata.correlation_id, message_id: metadata.message_id, app_id: metadata.app_id } trace.meta[:delivery_info] = { consumer_tag: delivery_info.consumer_tag, redelivered: delivery_info.redelivered?, routing_key: delivery_info.routing_key, exchange: delivery_info.exchange } trace.meta[:route] = { consumer: route.consumer, action: route.action } trace.start! end super rescue StandardError, LoadError, SyntaxError => e trace&.attach_error(e) raise ensure if trace trace.submit trace.release end end