Module: Datadog::Tracing::Contrib::Bunny::Patcher::ExchangePatch

Defined in:
lib/datadog/tracing/contrib/bunny/patcher.rb

Overview

Patch for Bunny::Exchange

Instance Method Summary collapse

Instance Method Details

#publish(payload, opts = {}) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/datadog/tracing/contrib/bunny/patcher.rb', line 55

def publish(payload, opts = {})
  config = Datadog.configuration.tracing[:bunny]
  Datadog::Tracing.trace(Ext::SPAN_EXCHANGE_PUBLISH, service: config.service_name) do |span|
    span.type = Datadog::Tracing::Metadata::Ext::AppTypes::TYPE_WORKER
    span.set_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT, Ext::APP)
    span.set_tag(Ext::SPAN_EXCHANGE_NAME, name)

    if (trace_digest = Datadog::Tracing.active_trace&.to_digest)
      opts[:trace_digest] ||= {}
      hash = JSON.parse(trace_digest.to_json)
      opts[:trace_digest].merge!(hash)
    end
    super
  end
end