Module: Mnemosyne::Middleware::Restify

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

Instance Method Summary collapse

Instance Method Details

#call(request) ⇒ Object

rubocop:disable Metrics/MethodLength



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

def call(request)
  if (trace = ::Mnemosyne::Instrumenter.current_trace)
    meta = {url: request.uri, 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.then do |response|
      span.finish!
      trace << span

      response
    end
  else
    super
  end
end