Class: Gruf::Prometheus::Client::Interceptor

Inherits:
Interceptors::ClientInterceptor
  • Object
show all
Defined in:
lib/gruf/prometheus/client/interceptor.rb

Overview

Server interceptor for measuring counter/timers for gRPC inbound requests

Instance Method Summary collapse

Instance Method Details

#call(request_context:, &block) ⇒ Object

Intercept the call and send metrics



28
29
30
31
32
33
34
35
36
# File 'lib/gruf/prometheus/client/interceptor.rb', line 28

def call(request_context:, &block)
  result = ::Gruf::Interceptors::Timer.time(&block)

  send_metrics(request_context: request_context, result: result)

  raise result.message unless result.successful?

  result.message
end