7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/jcw/interceptors/gruf/client.rb', line 7
def call(request_context:)
tracer = OpenTracing.global_tracer
metadata = request_context.metadata
tags = {
"component" => "gRPC",
"span.kind" => "client",
"grpc.method_type" => "request_response",
"grpc.headers" => metadata,
}
tracer.start_active_span(request_context.method.to_s, tags: tags) do |current_scope|
current_span = current_scope.span
current_span.log_kv(
event: "request",
data: request_context.requests.map { |request| request.try(:to_h) },
)
hpack_carrier = Hpack.new(metadata)
tracer.inject(current_span.context, ::OpenTracing::FORMAT_TEXT_MAP, hpack_carrier)
yield
end
end
|