Module: Jaeger::Client

Defined in:
lib/jaeger/client.rb,
lib/jaeger/client/span.rb,
lib/jaeger/client/scope.rb,
lib/jaeger/client/tracer.rb,
lib/jaeger/client/carrier.rb,
lib/jaeger/client/version.rb,
lib/jaeger/client/trace_id.rb,
lib/jaeger/client/injectors.rb,
lib/jaeger/client/extractors.rb,
lib/jaeger/client/udp_sender.rb,
lib/jaeger/client/http_sender.rb,
lib/jaeger/client/span_context.rb,
lib/jaeger/client/scope_manager.rb,
lib/jaeger/client/async_reporter.rb,
lib/jaeger/client/samplers/const.rb,
lib/jaeger/client/udp_sender/transport.rb,
lib/jaeger/client/async_reporter/buffer.rb,
lib/jaeger/client/samplers/probabilistic.rb,
lib/jaeger/client/encoders/thrift_encoder.rb,
lib/jaeger/client/span/thrift_log_builder.rb,
lib/jaeger/client/span/thrift_tag_builder.rb,
lib/jaeger/client/scope_manager/scope_stack.rb,
lib/jaeger/client/scope_manager/scope_identifier.rb

Defined Under Namespace

Modules: Encoders, Extractors, Injectors, Samplers, TraceId Classes: AsyncReporter, Carrier, HttpSender, Scope, ScopeManager, Span, SpanContext, Tracer, UdpSender

Constant Summary collapse

DEFAULT_FLUSH_INTERVAL =
10
VERSION =
'0.8.0'.freeze

Class Method Summary collapse

Class Method Details

.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, injectors: {}, extractors: {}) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/jaeger/client.rb', line 28

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,
               injectors: {},
               extractors: {})
  encoder = Encoders::ThriftEncoder.new(service_name: service_name)

  if sender.nil?
    sender = UdpSender.new(host: host, port: port, encoder: encoder, logger: logger)
  end

  reporter = AsyncReporter.create(sender: sender, flush_interval: flush_interval)

  Tracer.new(
    reporter: reporter,
    sampler: sampler,
    injectors: Injectors.prepare(injectors),
    extractors: Extractors.prepare(extractors)
  )
end