Module: NewRelic::Agent::Instrumentation::Bunny::Exchange
- Includes:
- NewRelic::Agent::Instrumentation::Bunny
- Included in:
- Bunny::Prepend::Exchange
- Defined in:
- lib/new_relic/agent/instrumentation/bunny/instrumentation.rb
Constant Summary
Constants included from NewRelic::Agent::Instrumentation::Bunny
DEFAULT_NAME, DEFAULT_TYPE, LIBRARY, SLASH
Instance Method Summary collapse
Methods included from NewRelic::Agent::Instrumentation::Bunny
Instance Method Details
#publish_with_tracing(payload, opts = {}) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/new_relic/agent/instrumentation/bunny/instrumentation.rb', line 30 def publish_with_tracing(payload, opts = {}) begin destination = exchange_name(name) tracing_enabled = NewRelic::Agent::CrossAppTracing.cross_app_enabled? || NewRelic::Agent.config[:'distributed_tracing.enabled'] opts[:headers] ||= {} if tracing_enabled segment = NewRelic::Agent::Messaging.start_amqp_publish_segment( library: LIBRARY, destination_name: destination, headers: opts[:headers], routing_key: opts[:routing_key] || opts[:key], reply_to: opts[:reply_to], correlation_id: opts[:correlation_id], exchange_type: type ) rescue => e NewRelic::Agent.logger.error('Error starting message broker segment in Bunny::Exchange#publish', e) yield else NewRelic::Agent::Tracer.capture_segment_error(segment) do yield end ensure ::NewRelic::Agent::Transaction::Segment.finish(segment) end end |