module Gruf::StackdriverTrace::Label
Public Instance Methods
get_host(request)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 44 def get_host(request) if request_context?(request) # get request host from GRPC::ActiveCall::InterceptableView request.call.instance_variable_get(:@wrapped).try(:peer) else request.active_call.peer end end
get_ua(request)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 39 def get_ua(request) metadata = request_context?(request) ? request.metadata : request.active_call.metadata metadata['user-agent'] || nil end
label_key()
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 11 def label_key Google::Cloud::Trace::LabelKey end
request_context?(request)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 53 def request_context?(request) request.is_a?(Gruf::Outbound::RequestContext) end
set_basic_labels(labels, request, method_name)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 19 def set_basic_labels(labels, request, method_name) set_label(labels, label_key::AGENT, Gruf::StackdriverTrace::AGENT_NAME) set_label(labels, label_key::HTTP_HOST, get_host(request)) set_label(labels, label_key::HTTP_CLIENT_PROTOCOL, 'http2') set_label(labels, label_key::HTTP_USER_AGENT, get_ua(request)) set_label(labels, label_key::HTTP_URL, method_name) set_label(labels, label_key::PID, ::Process.pid) set_label(labels, label_key::TID, ::Thread.current.object_id) end
set_grpc_status_code(labels, status_code)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 35 def set_grpc_status_code(labels, status_code) set_label(labels, label_key::RPC_STATUS_CODE, status_code_to_label(status_code)) end
set_label(labels, key, value)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 15 def set_label(labels, key, value) labels[key] = value.to_s end
set_stack_trace(span, skip_frames)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 29 def set_stack_trace(span, skip_frames) tc = span.trace.trace_context return unless tc.capture_stack? label_key.set_stack_trace(span.labels, skip_frames: skip_frames) end
status_code_to_label(code)
click to toggle source
# File lib/gruf/stackdriver_trace/label.rb, line 4 def status_code_to_label(code) @lookup ||= Hash[GRPC::Core::StatusCodes.constants.map do |c| [GRPC::Core::StatusCodes.const_get(c), c.to_s] end] @lookup[code] end