Class: Jaeger::Encoders::ThriftEncoder

Inherits:
Object
  • Object
show all
Defined in:
lib/jaeger/encoders/thrift_encoder.rb

Defined Under Namespace

Classes: DummyTransport

Instance Method Summary collapse

Constructor Details

#initialize(service_name:, tags: {}) ⇒ ThriftEncoder

Returns a new instance of ThriftEncoder.



6
7
8
9
10
# File 'lib/jaeger/encoders/thrift_encoder.rb', line 6

def initialize(service_name:, tags: {})
  @service_name = service_name
  @tags = prepare_tags(tags)
  @process = Jaeger::Thrift::Process.new('serviceName' => @service_name, 'tags' => @tags)
end

Instance Method Details

#encode(spans) ⇒ Object



12
13
14
# File 'lib/jaeger/encoders/thrift_encoder.rb', line 12

def encode(spans)
  encode_batch(spans.map(&method(:encode_span)))
end

#encode_limited_size(spans, protocol_class, max_message_length) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/jaeger/encoders/thrift_encoder.rb', line 16

def encode_limited_size(spans, protocol_class, max_message_length)
  batches = []
  current_batch = []
  transport.flush
  spans.each do |span|
    encoded_span = encode_span(span)
    if aggregated_span_size(encoded_span, protocol_class) > max_message_length && !current_batch.empty?
      batches << encode_batch(current_batch)
      current_batch = []
      transport.flush
    end
    current_batch << encoded_span
  end
  batches << encode_batch(current_batch) unless current_batch.empty?
  batches
end