Sha256: 86457be800690fa8a54f0d1c032d2ae9bb155dcc5625ef644e68d30e7858d378
Contents?: true
Size: 1.97 KB
Versions: 6
Compression:
Stored size: 1.97 KB
Contents
require 'sqreen/ecosystem/module_api' require 'sqreen/ecosystem/module_api/instrumentation' require 'sqreen/ecosystem/module_api/message_producer' require 'sqreen/ecosystem/module_api/tracing/consumer_data' require 'sqreen/ecosystem/module_api/tracing/producer_data' module Sqreen module Ecosystem module Messaging class Bunny include ModuleApi::Loggable include ModuleApi::Instrumentation include ModuleApi::MessageProducer def setup advice_send = wrap_for_interest(ModuleApi::Tracing::ProducerData, &method(:after_send_advice)) advice_receive = wrap_for_interest(ModuleApi::Tracing::ConsumerData, &method(:after_receive_advice)) advice_receive_consumer = wrap_for_interest(ModuleApi::Tracing::ConsumerData, &method(:after_receive_advice_consumer)) instrument 'Bunny::Queue#publish', after: advice_send instrument 'Bunny::Queue#pop', after: advice_receive instrument 'Bunny::Consumer#call', after: advice_receive_consumer end private # @param [Sqreen::Graft::CallbackCall] call def after_send_advice(call, _ball) return if call.raised create_signal(call.instance, ModuleApi::Tracing::ProducerData) end # @param [Sqreen::Graft::CallbackCall] call def after_receive_advice(call, _ball) return if call.raised create_signal(call.instance, ModuleApi::Tracing::ConsumerData) end # @param [Sqreen::Graft::CallbackCall] call def after_receive_advice_consumer(call, _ball) return if call.raised queue = call.instance.queue create_signal(queue, ModuleApi::Tracing::ConsumerData) end # @param [Bunny::Queue] q def create_signal(q, clazz) conn = q.channel.connection clazz.new( message_type: :amqp, host: conn.host, topic: q.name, ) end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems