class Atatus::GRPC::ServerInterceptor
@api private
Constants
- TYPE
Public Instance Methods
request_response(request:, call:, method:) { || ... }
click to toggle source
rubocop:disable Lint/UnusedMethodArgument
# File lib/atatus/grpc.rb, line 68 def request_response(request:, call:, method:) transaction = start_transaction(call) yield transaction.done 'success' rescue ::Exception => e Atatus.report(e, handled: false) transaction.done 'error' if transaction raise ensure Atatus.end_transaction end
Private Instance Methods
start_transaction(call)
click to toggle source
rubocop:enable Lint/UnusedMethodArgument
# File lib/atatus/grpc.rb, line 83 def start_transaction(call) Atatus.start_transaction( 'grpc', 'request', trace_context: trace_context(call) ) end
trace_context(call)
click to toggle source
# File lib/atatus/grpc.rb, line 91 def trace_context(call) TraceContext.parse(metadata: call.metadata) rescue TraceContext::InvalidTraceparentHeader warn "Couldn't parse invalid trace context header: #{call.metadata}" nil end