opentelemetry-propagator-jaeger 0.25.1 → 0.25.2
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c9797fc20399bbc7314cbdf397822443b340f929995d4dee351c95a1d6fcbae
|
|
4
|
+
data.tar.gz: 924be198477b03252c17bfa987804d9ebc57786878ba54f055ef5785fb91239a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c283c3371e5fba81c0ec21d124b637121fa66a8ed8307adc788ffd3746191d976831c982331e637c7dee4b008a58736c7b401ac49ee4ab2b231a48f0703d75e6
|
|
7
|
+
data.tar.gz: c42a65b3ca93b3cd1ec3a15fd664e3e2c99e905b4f954328b97fc515bdc13d899599b0e2e58a2b98250d12a159fe4cbf3bf5ddcd65eb8e7cc442a85c252a4036
|
data/CHANGELOG.md
CHANGED
|
@@ -26,10 +26,14 @@ module OpenTelemetry
|
|
|
26
26
|
FIELDS = [IDENTITY_KEY].freeze
|
|
27
27
|
TRACE_SPAN_IDENTITY_REGEX = /\A(?<trace_id>(?:[0-9a-f]){1,32}):(?<span_id>(?:[0-9a-f]){1,16}):(?:[0-9a-f]){1,16}:(?<sampling_flags>[0-9a-f]{1,2})\z/
|
|
28
28
|
ZERO_ID_REGEX = /^0+$/
|
|
29
|
+
BAGGAGE_KEY_PREFIX = 'uberctx-'
|
|
30
|
+
MAX_BAGGAGE_ENTRIES = 180
|
|
31
|
+
MAX_BAGGAGE_ENTRY_BYTES = 4096
|
|
32
|
+
MAX_BAGGAGE_TOTAL_BYTES = 8192
|
|
29
33
|
|
|
30
|
-
private_constant
|
|
31
|
-
|
|
32
|
-
|
|
34
|
+
private_constant :IDENTITY_KEY, :DEFAULT_FLAG_BIT, :SAMPLED_FLAG_BIT, :DEBUG_FLAG_BIT, :FIELDS,
|
|
35
|
+
:TRACE_SPAN_IDENTITY_REGEX, :ZERO_ID_REGEX, :BAGGAGE_KEY_PREFIX,
|
|
36
|
+
:MAX_BAGGAGE_ENTRIES, :MAX_BAGGAGE_ENTRY_BYTES, :MAX_BAGGAGE_TOTAL_BYTES
|
|
33
37
|
|
|
34
38
|
# Extract trace context from the supplied carrier.
|
|
35
39
|
# If extraction fails, the original context will be returned
|
|
@@ -73,11 +77,7 @@ module OpenTelemetry
|
|
|
73
77
|
span_context.hex_trace_id, span_context.hex_span_id, '0', flags
|
|
74
78
|
].join(':')
|
|
75
79
|
setter.set(carrier, IDENTITY_KEY, trace_span_identity_value)
|
|
76
|
-
|
|
77
|
-
baggage_key = "uberctx-#{key}"
|
|
78
|
-
encoded_value = URI.encode_uri_component(value)
|
|
79
|
-
setter.set(carrier, baggage_key, encoded_value)
|
|
80
|
-
end
|
|
80
|
+
inject_baggage(carrier, context, setter)
|
|
81
81
|
carrier
|
|
82
82
|
end
|
|
83
83
|
|
|
@@ -102,20 +102,49 @@ module OpenTelemetry
|
|
|
102
102
|
OpenTelemetry::Trace.non_recording_span(span_context)
|
|
103
103
|
end
|
|
104
104
|
|
|
105
|
+
def inject_baggage(carrier, context, setter)
|
|
106
|
+
count = 0
|
|
107
|
+
total_bytes = 0
|
|
108
|
+
OpenTelemetry::Baggage.values(context: context).each do |key, value|
|
|
109
|
+
break unless count < MAX_BAGGAGE_ENTRIES
|
|
110
|
+
|
|
111
|
+
encoded_value = URI.encode_uri_component(value)
|
|
112
|
+
entry_bytes = key.to_s.bytesize + encoded_value.bytesize
|
|
113
|
+
next unless within_baggage_limits?(entry_bytes, total_bytes)
|
|
114
|
+
|
|
115
|
+
setter.set(carrier, "#{BAGGAGE_KEY_PREFIX}#{key}", encoded_value)
|
|
116
|
+
count += 1
|
|
117
|
+
total_bytes += entry_bytes
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
105
121
|
def context_with_extracted_baggage(carrier, context, getter)
|
|
106
|
-
baggage_key_prefix = 'uberctx-'
|
|
107
122
|
OpenTelemetry::Baggage.build(context: context) do |b|
|
|
123
|
+
count = 0
|
|
124
|
+
total_bytes = 0
|
|
108
125
|
getter.keys(carrier).each do |carrier_key|
|
|
109
|
-
|
|
126
|
+
break unless count < MAX_BAGGAGE_ENTRIES
|
|
127
|
+
|
|
128
|
+
baggage_key = carrier_key.start_with?(BAGGAGE_KEY_PREFIX) && carrier_key[BAGGAGE_KEY_PREFIX.length..]
|
|
110
129
|
next unless baggage_key
|
|
111
130
|
|
|
112
131
|
raw_value = getter.get(carrier, carrier_key)
|
|
113
|
-
|
|
114
|
-
|
|
132
|
+
next unless raw_value
|
|
133
|
+
|
|
134
|
+
entry_bytes = baggage_key.bytesize + raw_value.bytesize
|
|
135
|
+
next unless within_baggage_limits?(entry_bytes, total_bytes)
|
|
136
|
+
|
|
137
|
+
b.set_value(baggage_key, URI.decode_uri_component(raw_value))
|
|
138
|
+
count += 1
|
|
139
|
+
total_bytes += entry_bytes
|
|
115
140
|
end
|
|
116
141
|
end
|
|
117
142
|
end
|
|
118
143
|
|
|
144
|
+
def within_baggage_limits?(entry_bytes, total_bytes)
|
|
145
|
+
entry_bytes <= MAX_BAGGAGE_ENTRY_BYTES && total_bytes + entry_bytes <= MAX_BAGGAGE_TOTAL_BYTES
|
|
146
|
+
end
|
|
147
|
+
|
|
119
148
|
def to_jaeger_flags(context, span_context)
|
|
120
149
|
if span_context.trace_flags == Trace::TraceFlags::SAMPLED
|
|
121
150
|
if Jaeger.debug?(context)
|
|
@@ -129,7 +158,7 @@ module OpenTelemetry
|
|
|
129
158
|
end
|
|
130
159
|
|
|
131
160
|
def to_trace_flags(sampling_flags)
|
|
132
|
-
if (
|
|
161
|
+
if sampling_flags.anybits?(SAMPLED_FLAG_BIT)
|
|
133
162
|
Trace::TraceFlags::SAMPLED
|
|
134
163
|
else
|
|
135
164
|
Trace::TraceFlags::DEFAULT
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opentelemetry-propagator-jaeger
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.25.
|
|
4
|
+
version: 0.25.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenTelemetry Authors
|
|
@@ -42,10 +42,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
|
42
42
|
licenses:
|
|
43
43
|
- Apache-2.0
|
|
44
44
|
metadata:
|
|
45
|
-
changelog_uri: https://rubydoc.info/gems/opentelemetry-propagator-jaeger/0.25.
|
|
46
|
-
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-propagator-jaeger/v0.25.
|
|
45
|
+
changelog_uri: https://rubydoc.info/gems/opentelemetry-propagator-jaeger/0.25.2/file/CHANGELOG.md
|
|
46
|
+
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-propagator-jaeger/v0.25.2/propagator/jaeger
|
|
47
47
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
|
48
|
-
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-jaeger/0.25.
|
|
48
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-jaeger/0.25.2
|
|
49
49
|
rdoc_options: []
|
|
50
50
|
require_paths:
|
|
51
51
|
- lib
|
|
@@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
61
|
version: '0'
|
|
62
62
|
requirements: []
|
|
63
|
-
rubygems_version: 4.0.
|
|
63
|
+
rubygems_version: 4.0.16
|
|
64
64
|
specification_version: 4
|
|
65
65
|
summary: Jaeger Context Propagation Extension for the OpenTelemetry framework
|
|
66
66
|
test_files: []
|