Class: Gritz::Middleware::Metrics

Inherits:
Object
  • Object
show all
Defined in:
/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/middleware/metrics.rb

Overview

One completion observation wraps the complete unary or streaming action.

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Metrics

Returns a new instance of Metrics.



8
9
10
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/middleware/metrics.rb', line 8

def initialize(app)
  @app = app
end

Instance Method Details

#call(context) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File '/home/runner/work/gritz/gritz/sources/gritz-core/lib/gritz/middleware/metrics.rb', line 12

def call(context)
  started = Process.clock_gettime(Process::CLOCK_MONOTONIC)
  code = 0
  @app.call(context)
rescue Gritz::Error => e
  code = e.grpc_code
  raise
rescue StandardError
  code = 13
  raise
ensure
  context.metrics&.record_rpc(service: context.method.service, method: context.method.name, code: code,
                              duration: Process.clock_gettime(Process::CLOCK_MONOTONIC) - started,
                              requests: context.requests_count, responses: context.responses_count)
end