3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# 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
|