Module: Mnemosyne::Probes::Msgr::Client::Instrumentation

Defined in:
lib/mnemosyne/probes/msgr/client.rb

Instance Method Summary collapse

Instance Method Details

#publish(payload, **options) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mnemosyne/probes/msgr/client.rb', line 16

def publish(payload, **options)
  if (trace = ::Mnemosyne::Instrumenter.current_trace)
    meta = {}
    span = ::Mnemosyne::Span.new(NAME, meta: meta)
    span.start!

    options[:headers] ||= {}
    options[:headers][:'mnemosyne.transaction'] = trace.transaction
    options[:headers][:'mnemosyne.origin'] = span.uuid

    begin
      super
    ensure
      span.finish!
      trace << span
    end
  else
    super
  end
end