jaeger-client 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/lib/jaeger/client.rb +5 -2
- data/lib/jaeger/client/collector.rb +3 -3
- data/lib/jaeger/client/span_context.rb +8 -7
- data/lib/jaeger/client/trace_id.rb +15 -1
- data/lib/jaeger/client/tracer.rb +4 -10
- data/lib/jaeger/client/udp_sender.rb +4 -1
- data/lib/jaeger/client/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 569f7aab000d228eac45be1f7d5831251b886ea0372c83f26d6eee58cb4aebbc
|
4
|
+
data.tar.gz: ce36d49763c06f2fbad18d69587c1c66c9f047bcdc24bcbdb7c1b7bc99fdb803
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c1e3bf462504c1f0b83dfe460d3001dcb45fb8dece53245f6b9d25a3065332f6a16bba3a425ffe34d74bef5ab0d67d5cd7caaafc36d9b930eab067040c88dbf
|
7
|
+
data.tar.gz: 0f9c0a1c60ccb748c3f50a63e01f28d2756f8485f35b4aa111544e596f19685f2200f0446962c56b17d2273c976f638ec7c00764fccd88fbbb73c5814dd8cee8
|
data/lib/jaeger/client.rb
CHANGED
@@ -4,6 +4,7 @@ $LOAD_PATH.push(File.dirname(__FILE__) + '/../../thrift/gen-rb')
|
|
4
4
|
|
5
5
|
require 'opentracing'
|
6
6
|
require 'jaeger/thrift/agent'
|
7
|
+
require 'logger'
|
7
8
|
|
8
9
|
require_relative 'client/tracer'
|
9
10
|
require_relative 'client/span'
|
@@ -25,14 +26,16 @@ module Jaeger
|
|
25
26
|
port: 6831,
|
26
27
|
service_name:,
|
27
28
|
flush_interval: DEFAULT_FLUSH_INTERVAL,
|
28
|
-
sampler: Samplers::Const.new(true)
|
29
|
+
sampler: Samplers::Const.new(true),
|
30
|
+
logger: Logger.new(STDOUT))
|
29
31
|
collector = Collector.new
|
30
32
|
sender = UdpSender.new(
|
31
33
|
service_name: service_name,
|
32
34
|
host: host,
|
33
35
|
port: port,
|
34
36
|
collector: collector,
|
35
|
-
flush_interval: flush_interval
|
37
|
+
flush_interval: flush_interval,
|
38
|
+
logger: logger
|
36
39
|
)
|
37
40
|
sender.start
|
38
41
|
Tracer.new(collector, sender, sampler)
|
@@ -15,10 +15,10 @@ module Jaeger
|
|
15
15
|
return if !context.sampled? && !context.debug?
|
16
16
|
|
17
17
|
@buffer << Jaeger::Thrift::Span.new(
|
18
|
-
'traceIdLow' => context.trace_id,
|
18
|
+
'traceIdLow' => TraceId.uint64_id_to_int64(context.trace_id),
|
19
19
|
'traceIdHigh' => 0,
|
20
|
-
'spanId' => context.span_id,
|
21
|
-
'parentSpanId' => context.parent_id,
|
20
|
+
'spanId' => TraceId.uint64_id_to_int64(context.span_id),
|
21
|
+
'parentSpanId' => TraceId.uint64_id_to_int64(context.parent_id),
|
22
22
|
'operationName' => span.operation_name,
|
23
23
|
'references' => build_references(span.references || []),
|
24
24
|
'flags' => context.flags,
|
@@ -43,15 +43,16 @@ module Jaeger
|
|
43
43
|
@flags & Flags::DEBUG == Flags::DEBUG
|
44
44
|
end
|
45
45
|
|
46
|
-
def
|
47
|
-
to_s
|
46
|
+
def to_trace_id
|
47
|
+
@to_trace_id ||= @trace_id.to_s(16)
|
48
48
|
end
|
49
49
|
|
50
|
-
def
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
def to_parent_id
|
51
|
+
@to_parent_id ||= @parent_id.zero? ? nil : @parent_id.to_s(16)
|
52
|
+
end
|
53
|
+
|
54
|
+
def to_span_id
|
55
|
+
@to_span_id ||= @span_id.to_s(16)
|
55
56
|
end
|
56
57
|
end
|
57
58
|
end
|
@@ -3,11 +3,25 @@
|
|
3
3
|
module Jaeger
|
4
4
|
module Client
|
5
5
|
module TraceId
|
6
|
-
|
6
|
+
MAX_64BIT_SIGNED_INT = (1 << 63) - 1
|
7
|
+
MAX_64BIT_UNSIGNED_INT = (1 << 64) - 1
|
8
|
+
TRACE_ID_UPPER_BOUND = MAX_64BIT_UNSIGNED_INT + 1
|
7
9
|
|
8
10
|
def self.generate
|
9
11
|
rand(TRACE_ID_UPPER_BOUND)
|
10
12
|
end
|
13
|
+
|
14
|
+
def self.base16_hex_id_to_uint64(id)
|
15
|
+
return nil unless id
|
16
|
+
value = id.to_i(16)
|
17
|
+
value > MAX_64BIT_UNSIGNED_INT || value < 0 ? 0 : value
|
18
|
+
end
|
19
|
+
|
20
|
+
# Thrift defines ID fields as i64, which is signed, therefore we convert
|
21
|
+
# large IDs (> 2^63) to negative longs
|
22
|
+
def self.uint64_id_to_int64(id)
|
23
|
+
id > MAX_64BIT_SIGNED_INT ? id - MAX_64BIT_UNSIGNED_INT - 1 : id
|
24
|
+
end
|
11
25
|
end
|
12
26
|
end
|
13
27
|
end
|
data/lib/jaeger/client/tracer.rb
CHANGED
@@ -167,26 +167,20 @@ module Jaeger
|
|
167
167
|
def parse_context(trace)
|
168
168
|
return nil if !trace || trace == ''
|
169
169
|
|
170
|
-
trace_arguments = trace.split(':').map
|
170
|
+
trace_arguments = trace.split(':').map(&TraceId.method(:base16_hex_id_to_uint64))
|
171
171
|
return nil if trace_arguments.size != 4
|
172
172
|
|
173
173
|
trace_id, span_id, parent_id, flags = trace_arguments
|
174
174
|
return nil if trace_id.zero? || span_id.zero?
|
175
175
|
|
176
176
|
SpanContext.new(
|
177
|
-
trace_id:
|
178
|
-
parent_id:
|
179
|
-
span_id:
|
177
|
+
trace_id: trace_id,
|
178
|
+
parent_id: parent_id,
|
179
|
+
span_id: span_id,
|
180
180
|
flags: flags
|
181
181
|
)
|
182
182
|
end
|
183
183
|
|
184
|
-
def to_signed_int(num, bits)
|
185
|
-
# Using two's complement
|
186
|
-
mask = 2**(bits - 1)
|
187
|
-
(num & ~mask) - (num & mask)
|
188
|
-
end
|
189
|
-
|
190
184
|
def prepare_span_context(child_of:, references:, ignore_active_scope:)
|
191
185
|
context =
|
192
186
|
context_from_child_of(child_of) ||
|
@@ -7,10 +7,11 @@ require 'thread'
|
|
7
7
|
module Jaeger
|
8
8
|
module Client
|
9
9
|
class UdpSender
|
10
|
-
def initialize(service_name:, host:, port:, collector:, flush_interval:)
|
10
|
+
def initialize(service_name:, host:, port:, collector:, flush_interval:, logger:)
|
11
11
|
@service_name = service_name
|
12
12
|
@collector = collector
|
13
13
|
@flush_interval = flush_interval
|
14
|
+
@logger = logger
|
14
15
|
|
15
16
|
@tags = [
|
16
17
|
Jaeger::Thrift::Tag.new(
|
@@ -67,6 +68,8 @@ module Jaeger
|
|
67
68
|
)
|
68
69
|
|
69
70
|
@client.emitBatch(batch)
|
71
|
+
rescue StandardError => error
|
72
|
+
@logger.error("Failure while sending a batch of spans: #{error}")
|
70
73
|
end
|
71
74
|
end
|
72
75
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jaeger-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SaleMove TechMovers
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -182,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
182
|
version: '0'
|
183
183
|
requirements: []
|
184
184
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.6
|
185
|
+
rubygems_version: 2.7.6
|
186
186
|
signing_key:
|
187
187
|
specification_version: 4
|
188
188
|
summary: OpenTracing Tracer implementation for Jaeger in Ruby
|