class OpenTracing::Instrumentation::Thrift::TracedProtocolFactory

Factory of TracedProtocol. Can be used thrift processor

Usage (config.ru):

multiplexed_processor = Thrift::MultiplexedProcessor.new
binary_protocol_factory =
  OpenTracing::Instrumentation::Thrift::TracedProtocolFactory.new(
    Thrift::BinaryProtocolAcceleratedFactory.new,
  )
json_protocol_factory =
  OpenTracing::Instrumentation::Thrift::TracedProtocolFactory.new(
    Thrift::JsonProtocolFactory.new,
  )
protocol_factoreis_map = {
  binary_protocol_factory => ['application/x-thrift'],
  json_protocol_factory => ['application/json'],
}
thrift_app =
  ::MultiprotocolThriftRackApp.new(
    multiplexed_processor,
    protocol_factoreis_map,
  )
run thrift_app

Attributes

config[R]
protocol_factory[R]

Public Class Methods

new(protocol_factory, config: TracedProtocolConfig.new) click to toggle source
Calls superclass method
# File lib/opentracing/instrumentation/thrift/traced_protocol_factory.rb, line 31
def initialize(protocol_factory, config: TracedProtocolConfig.new)
  super()
  @protocol_factory = protocol_factory
  @config = config
end

Public Instance Methods

get_protocol(trans) click to toggle source
# File lib/opentracing/instrumentation/thrift/traced_protocol_factory.rb, line 37
def get_protocol(trans)
  protocol = protocol_factory.get_protocol(trans)
  TracedProtocol.new(protocol, config: config)
end