Class: Jaeger::Client::Encoders::ThriftEncoder

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

Instance Method Summary collapse

Constructor Details

#initialize(service_name:) ⇒ ThriftEncoder

Returns a new instance of ThriftEncoder.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/jaeger/client/encoders/thrift_encoder.rb', line 7

def initialize(service_name:)
  @service_name = service_name
  @tags = [
    Jaeger::Thrift::Tag.new(
      'key' => 'jaeger.version',
      'vType' => Jaeger::Thrift::TagType::STRING,
      'vStr' => 'Ruby-' + Jaeger::Client::VERSION
    ),
    Jaeger::Thrift::Tag.new(
      'key' => 'hostname',
      'vType' => Jaeger::Thrift::TagType::STRING,
      'vStr' => Socket.gethostname
    )
  ]
  ipv4 = Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }
  unless ipv4.nil? # rubocop:disable Style/GuardClause
    @tags << Jaeger::Thrift::Tag.new(
      'key' => 'ip',
      'vType' => Jaeger::Thrift::TagType::STRING,
      'vStr' => ipv4.ip_address
    )
  end
end

Instance Method Details

#encode(spans) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/jaeger/client/encoders/thrift_encoder.rb', line 31

def encode(spans)
  Jaeger::Thrift::Batch.new(
    'process' => Jaeger::Thrift::Process.new(
      'serviceName' => @service_name,
      'tags' => @tags
    ),
    'spans' => spans.map(&method(:encode_span))
  )
end