Sha256: 6bf274f4e86ad49f52ed84a65f0046a7468edb9fe411de238a675234457ab341

Contents?: true

Size: 802 Bytes

Versions: 4

Compression:

Stored size: 802 Bytes

Contents

# frozen_string_literal: true

require_relative './udp_sender/transport'
require 'socket'

module Jaeger
  class UdpSender
    def initialize(host:, port:, encoder:, logger:, max_packet_size: 65_000)
      @encoder = encoder
      @logger = logger

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

    def send_spans(spans)
      batches = @encoder.encode_limited_size(spans, @protocol_class, @max_packet_size)
      batches.each { |batch| @client.emitBatch(batch) }
    rescue StandardError => e
      @logger.error("Failure while sending a batch of spans: #{e}")
    end
  end
end

Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
dox-jaeger-client-2.0.0 lib/jaeger/udp_sender.rb
jaeger-client-with-ruby-32-support-2.0.0 lib/jaeger/udp_sender.rb
jaeger-client-1.3.0 lib/jaeger/udp_sender.rb
jaeger-client-1.2.0 lib/jaeger/udp_sender.rb