25 lines
613 B
Ruby
25 lines
613 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require_relative './udp_sender/transport'
|
||
|
require 'socket'
|
||
|
|
||
|
module Jaeger
|
||
|
class UdpSender
|
||
|
def initialize(host:, port:, encoder:, logger:)
|
||
|
@encoder = encoder
|
||
|
@logger = logger
|
||
|
|
||
|
transport = Transport.new(host, port)
|
||
|
protocol = ::Thrift::CompactProtocol.new(transport)
|
||
|
@client = Jaeger::Thrift::Agent::Client.new(protocol)
|
||
|
end
|
||
|
|
||
|
def send_spans(spans)
|
||
|
batch = @encoder.encode(spans)
|
||
|
@client.emitBatch(batch)
|
||
|
rescue StandardError => error
|
||
|
@logger.error("Failure while sending a batch of spans: #{error}")
|
||
|
end
|
||
|
end
|
||
|
end
|