Class: Gruf::StackdriverTrace::ClientInterceptor

Inherits:
Interceptors::ClientInterceptor
  • Object
show all
Includes:
Label
Defined in:
lib/gruf/stackdriver_trace/client_interceptor.rb

Instance Method Summary collapse

Methods included from Label

#get_host, #get_ua, #label_key, #request_context?, #set_basic_labels, #set_grpc_status_code, #set_label, #set_stack_trace, #status_code_to_label

Instance Method Details

#call(request_context:) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/gruf/stackdriver_trace/client_interceptor.rb', line 8

def call(request_context:)
  Google::Cloud::Trace.in_span("grpc-request") do |span|
    return yield request_context unless span
    (request_context., span)
    configure_span(span, request_context)
    result = Gruf::Interceptors::Timer.time do
      yield request_context
    end
    add_response_labels(span.labels, result)
    raise result.message unless result.successful?
    result.message
  end
end