Class: OpenTracing::Instrumentation::Thrift::TracedProtocolFactory

Inherits:
Thrift::BaseProtocolFactory
  • Object
show all
Defined in:
lib/opentracing/instrumentation/thrift/traced_protocol_factory.rb

Overview

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

Instance Method Summary collapse

Constructor Details

#initialize(protocol_factory, config: TracedProtocolConfig.new) ⇒ TracedProtocolFactory

Returns a new instance of TracedProtocolFactory.



31
32
33
34
35
# 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

Instance Method Details

#get_protocol(trans) ⇒ Object



37
38
39
40
# 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