class Jaeger::HttpSender

Public Class Methods

new(url:, headers: {}, encoder:, logger: Logger.new(STDOUT)) click to toggle source
# File lib/jaeger/http_sender.rb, line 7
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

Public Instance Methods

send_spans(spans) click to toggle source
# File lib/jaeger/http_sender.rb, line 20
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