module Mnemosyne::Probes::Restify::Base::Probe::Instrumentation

Public Instance Methods

call(request) click to toggle source
Calls superclass method
# File lib/mnemosyne/probes/restify/base.rb, line 13
def call(request)
  if (trace = ::Mnemosyne::Instrumenter.current_trace)
    meta = {url: request.uri.to_s, method: request.method}

    span = ::Mnemosyne::Span.new 'external.http.restify', \
      meta: meta

    span.start!

    request.headers['X-Mnemosyne-Transaction'] = trace.transaction
    request.headers['X-Mnemosyne-Origin'] = span.uuid

    super.tap do |x|
      x.add_observer do |_, response, _err|
        span.meta[:status] = response.code

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