class Jaeger::UdpSender

Public Class Methods

new(host:, port:, encoder:, logger:, max_packet_size: 65_000) click to toggle source
# File lib/jaeger/udp_sender.rb, line 8
def initialize(host:, port:, encoder:, logger:, max_packet_size: 65_000)
  @encoder = encoder
  @logger = logger

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

Public Instance Methods

send_spans(spans) click to toggle source
# File lib/jaeger/udp_sender.rb, line 19
def send_spans(spans)
  batches = @encoder.encode_limited_size(spans, @protocol_class, @max_packet_size)
  batches.each { |batch| @client.emitBatch(batch) }
rescue StandardError => error
  @logger.error("Failure while sending a batch of spans: #{error}")
end