class ZipkinTracer::TracerFactory
Public Instance Methods
tracer(config)
click to toggle source
# File lib/zipkin-tracer/tracer_factory.rb, line 3 def tracer(config) adapter = config.adapter tracer = case adapter when :json require 'zipkin-tracer/zipkin_http_sender' options = { async: config.async, json_api_host: config.json_api_host, logger: config.logger } Trace::ZipkinHttpSender.new(options) when :kafka require 'zipkin-tracer/zipkin_kafka_sender' Trace::ZipkinKafkaSender.new(zookeepers: config.zookeeper) when :kafka_producer require 'zipkin-tracer/zipkin_kafka_sender' options = { producer: config.kafka_producer } options[:topic] = config.kafka_topic unless config.kafka_topic.nil? Trace::ZipkinKafkaSender.new(options) when :sqs require 'zipkin-tracer/zipkin_sqs_sender' options = { async: config.async, logger: config.logger, queue_name: config.sqs_queue_name, region: config.sqs_region } Trace::ZipkinSqsSender.new(options) when :rabbit_mq require 'zipkin-tracer/zipkin_rabbit_mq_sender' options = { rabbit_mq_connection: config.rabbit_mq_connection, rabbit_mq_exchange: config.rabbit_mq_exchange, rabbit_mq_routing_key: config.rabbit_mq_routing_key, async: config.async, logger: config.logger } Trace::ZipkinRabbitMqSender.new(options) when :logger require 'zipkin-tracer/zipkin_logger_sender' Trace::ZipkinLoggerSender.new(logger: config.logger) else require 'zipkin-tracer/zipkin_null_sender' Trace::NullSender.new end Trace.tracer = tracer tracer end