Sha256: eec7b0be2b2a6aa1bfc242722be9f17f617254549ae884c08e07d6214461673b

Contents?: true

Size: 829 Bytes

Versions: 4

Compression:

Stored size: 829 Bytes

Contents

# frozen_string_literal: true

module Jaeger
  class UdpSender
    class Transport
      FLAGS = 0

      def initialize(host, port, logger:)
        @socket = UDPSocket.new
        @host = host
        @port = port
        @logger = logger
        @buffer = ::Thrift::MemoryBufferTransport.new
      end

      def write(str)
        @buffer.write(str)
      end

      def flush
        data = @buffer.read(@buffer.available)
        send_bytes(data)
      end

      def open; end

      def close; end

      private

      def send_bytes(bytes)
        @socket.send(bytes, FLAGS, @host, @port)
        @socket.flush
      rescue Errno::ECONNREFUSED
        @logger.warn 'Unable to connect to Jaeger Agent'
      rescue StandardError => e
        @logger.warn "Unable to send spans: #{e.message}"
      end
    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/transport.rb
jaeger-client-with-ruby-32-support-2.0.0 lib/jaeger/udp_sender/transport.rb
jaeger-client-1.3.0 lib/jaeger/udp_sender/transport.rb
jaeger-client-1.2.0 lib/jaeger/udp_sender/transport.rb