Class: Jaeger::Client::UdpSender

Inherits:
Object
  • Object
show all
Defined in:
lib/jaeger/client/udp_sender.rb,
lib/jaeger/client/udp_sender/transport.rb

Defined Under Namespace

Classes: Transport

Instance Method Summary collapse

Constructor Details

#initialize(service_name:, host:, port:, collector:, flush_interval:) ⇒ UdpSender

Returns a new instance of UdpSender.



8
9
10
11
12
13
14
15
16
# File 'lib/jaeger/client/udp_sender.rb', line 8

def initialize(service_name:, host:, port:, collector:, flush_interval:)
  @service_name = service_name
  @collector = collector
  @flush_interval = flush_interval

  transport = Transport.new(host, port)
  protocol = ::Thrift::CompactProtocol.new(transport)
  @client = Jaeger::Thrift::Agent::Client.new(protocol)
end

Instance Method Details

#startObject



18
19
20
21
22
23
24
25
26
# File 'lib/jaeger/client/udp_sender.rb', line 18

def start
  # Sending spans in a separate thread to avoid blocking the main thread.
  @thread = Thread.new do
    loop do
      emit_batch(@collector.retrieve)
      sleep @flush_interval
    end
  end
end

#stopObject



28
29
30
31
# File 'lib/jaeger/client/udp_sender.rb', line 28

def stop
  @thread.terminate if @thread
  emit_batch(@collector.retrieve)
end