6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/grpc_interceptors/server/statsd_metrics.rb', line 6
def request_response(request: nil, call: nil, method: nil, metadata: nil)
start_time = Time.now
code = GRPC::Core::StatusCodes::OK
labels = common_labels(method)
labels[:grpc_type] = 'unary'
yield
rescue StandardError => e
code = e.is_a?(GRPC::BadStatus) ? e.code : GRPC::Core::StatusCodes::UNKNOWN
raise
ensure
labels.merge(grpc_code: code)
elapsed_time = Time.now - start_time
StatsD.histogram('grpc_latency_seconds', elapsed_time, tags: labels)
end
|