13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# 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:)
span.start!
request.['X-Mnemosyne-Transaction'] = trace.transaction
request.['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
|