Class: Jaeger::Client::HttpSender

Inherits:
Object
  • Object
show all
Defined in:
lib/jaeger/client/http_sender.rb

Instance Method Summary collapse

Constructor Details

#initialize(url:, headers: {}, encoder:, logger: Logger.new(STDOUT)) ⇒ HttpSender

Returns a new instance of HttpSender.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/jaeger/client/http_sender.rb', line 8

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

Instance Method Details

#send_spans(spans) ⇒ Object



21
22
23
24
25
26
27
# File 'lib/jaeger/client/http_sender.rb', line 21

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