9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/thrift_server/instrumentation_middleware.rb', line 9
def call(rpc)
start_time = Time.now
publish :rpc_incoming, rpc
app.call(rpc).tap do |response|
latency = (Time.now - start_time) * 1000
publish :rpc_ok, rpc, response, {
latency: latency
}
end
rescue => ex
latency = (Time.now - start_time) * 1000
if rpc.protocol_exception? ex
publish :rpc_exception, rpc, ex, latency: latency
else
publish :rpc_error, rpc, ex, latency: latency
end
raise ex
end
|