Class: Yabeda::Gruf::ServerInterceptor

Inherits:
Gruf::Interceptors::ServerInterceptor
  • Object
show all
Defined in:
lib/yabeda/gruf/server_interceptor.rb

Instance Method Summary collapse

Instance Method Details

#callObject

rubocop:disable Metrics/MethodLength



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/yabeda/gruf/server_interceptor.rb', line 6

def call # rubocop:disable Metrics/MethodLength
  response = nil
  error = nil

  start_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)

  begin
    response = yield
  rescue StandardError => e
    error = e
  end

  stop_time = Process.clock_gettime(Process::CLOCK_MONOTONIC)

  l = labels(response, error)

  Yabeda.gruf.served_requests_total.increment(l)
  Yabeda.gruf.served_request_duration.measure(l, stop_time - start_time)

  raise error if error
  response
end