Sha256: f6cafc2f4266c86bc5f53b8923da031a755d85c7edce6946948c9664d68f3084

Contents?: true

Size: 692 Bytes

Versions: 3

Compression:

Stored size: 692 Bytes

Contents

# frozen_string_literal: true

require 'logger'

module Jaeger
  class HttpSender
    def initialize(url:, headers: {}, encoder:, logger: Logger.new(STDOUT))
      @encoder = encoder
      @logger = logger

      @uri = URI(url)
      @uri.query = 'format=jaeger.thrift'

      @transport = ::Thrift::HTTPClientTransport.new(@uri.to_s)
      @transport.add_headers(headers)

      @serializer = ::Thrift::Serializer.new
    end

    def send_spans(spans)
      batch = @encoder.encode(spans)
      @transport.write(@serializer.serialize(batch))
      @transport.flush
    rescue StandardError => error
      @logger.error("Failure while sending a batch of spans: #{error}")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jaeger-client-1.1.0 lib/jaeger/http_sender.rb
jaeger-client-1.0.0 lib/jaeger/http_sender.rb
jaeger-client-0.10.0 lib/jaeger/http_sender.rb