module Protobuf::Opentracing::Extensions::Base

Public Instance Methods

request_fields() click to toggle source
Calls superclass method
# File lib/protobuf/rpc/extensions/base.rb, line 5
def request_fields
  return super if options[:tracing_span].nil?

  trace_carrier = {}
  ::OpenTracing.inject(options[:tracing_span].context,
                       ::OpenTracing::FORMAT_TEXT_MAP,
                       trace_carrier)

  trace_headers = trace_carrier.map do |header|
    ::Protobuf::Socketrpc::Header.new(:key => header[0],
                                      :value => header[1])
  end

  fields = super
  headers = fields[:headers] || []
  fields[:headers] = headers + trace_headers
  fields
end