Module: Mnemosyne::Middleware::Restify

Defined in:
lib/mnemosyne/middleware/restify.rb

Instance Method Summary collapse

Instance Method Details

#call(request) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/mnemosyne/middleware/restify.rb', line 6

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.finish!
        trace << span
      end
    end
  else
    super
  end
end