Sha256: a68c5606a357f71f82f032ed009f6de0fa88528a92d803ab88bf3a0f0e82696c

Contents?: true

Size: 685 Bytes

Versions: 4

Compression:

Stored size: 685 Bytes

Contents

# frozen_string_literal: true

require 'logger'

module Jaeger
  class HttpSender
    def initialize(url:, encoder:, headers: {}, 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 => 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/http_sender.rb
jaeger-client-with-ruby-32-support-2.0.0 lib/jaeger/http_sender.rb
jaeger-client-1.3.0 lib/jaeger/http_sender.rb
jaeger-client-1.2.0 lib/jaeger/http_sender.rb