70 lines
2.1 KiB
Ruby
70 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
$LOAD_PATH.push(File.dirname(__FILE__) + '/../../thrift/gen-rb')
|
|
|
|
require 'opentracing'
|
|
require 'jaeger/thrift/agent'
|
|
require 'logger'
|
|
|
|
require_relative 'tracer'
|
|
require_relative 'span'
|
|
require_relative 'span_context'
|
|
require_relative 'scope'
|
|
require_relative 'scope_manager'
|
|
require_relative 'trace_id'
|
|
require_relative 'udp_sender'
|
|
require_relative 'http_sender'
|
|
require_relative 'reporters'
|
|
require_relative 'client/version'
|
|
require_relative 'samplers'
|
|
require_relative 'encoders/thrift_encoder'
|
|
require_relative 'injectors'
|
|
require_relative 'extractors'
|
|
require_relative 'rate_limiter'
|
|
|
|
module Jaeger
|
|
module Client
|
|
# We initially had everything under Jaeger::Client namespace. This however
|
|
# was not very useful and was removed. These assignments are here for
|
|
# backwards compatibility. Fine to remove in the next major version.
|
|
UdpSender = Jaeger::UdpSender
|
|
HttpSender = Jaeger::HttpSender
|
|
Encoders = Jaeger::Encoders
|
|
Samplers = Jaeger::Samplers
|
|
Reporters = Jaeger::Reporters
|
|
Injectors = Jaeger::Injectors
|
|
Extractors = Jaeger::Extractors
|
|
|
|
DEFAULT_FLUSH_INTERVAL = 10
|
|
|
|
def self.build(host: '127.0.0.1',
|
|
port: 6831,
|
|
service_name:,
|
|
flush_interval: DEFAULT_FLUSH_INTERVAL,
|
|
sampler: Samplers::Const.new(true),
|
|
logger: Logger.new(STDOUT),
|
|
sender: nil,
|
|
reporter: nil,
|
|
injectors: {},
|
|
extractors: {})
|
|
encoder = Encoders::ThriftEncoder.new(service_name: service_name)
|
|
|
|
if sender
|
|
warn '[DEPRECATION] Passing `sender` directly to Jaeger::Client.build is deprecated.' \
|
|
'Please use `reporter` instead.'
|
|
end
|
|
|
|
reporter ||= Reporters::RemoteReporter.new(
|
|
sender: sender || UdpSender.new(host: host, port: port, encoder: encoder, logger: logger),
|
|
flush_interval: flush_interval
|
|
)
|
|
|
|
Tracer.new(
|
|
reporter: reporter,
|
|
sampler: sampler,
|
|
injectors: Injectors.prepare(injectors),
|
|
extractors: Extractors.prepare(extractors)
|
|
)
|
|
end
|
|
end
|
|
end
|