opentelemetry-propagator-jaeger 0.25.0 → 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
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Release History: opentelemetry-propagator-jaeger
|
|
2
2
|
|
|
3
|
+
### v0.25.2 / 2026-09-15
|
|
4
|
+
|
|
5
|
+
* FIXED: Enforce baggage limits on the Jaeger extract path (#2299)
|
|
6
|
+
|
|
7
|
+
### v0.25.1 / 2026-07-08
|
|
8
|
+
|
|
9
|
+
* DOCS: Update source for gemspec links to RubyDoc (#2123)
|
|
10
|
+
|
|
3
11
|
### v0.25.0 / 2026-05-12
|
|
4
12
|
|
|
5
13
|
* ADDED: Add git tag to source URI in gemspec (#2101)
|
|
@@ -60,9 +68,6 @@
|
|
|
60
68
|
### v0.17.0 / 2021-04-22
|
|
61
69
|
|
|
62
70
|
- BREAKING CHANGE: Replace TextMapInjector/TextMapExtractor pairs with a TextMapPropagator.
|
|
63
|
-
|
|
64
|
-
[Check the propagator documentation](https://open-telemetry.github.io/opentelemetry-ruby/) for the new usage.
|
|
65
|
-
|
|
66
71
|
- FIXED: Refactor propagators to add #fields
|
|
67
72
|
|
|
68
73
|
### v0.16.0 / 2021-03-17
|
|
@@ -24,12 +24,16 @@ module OpenTelemetry
|
|
|
24
24
|
SAMPLED_FLAG_BIT = 0x01
|
|
25
25
|
DEBUG_FLAG_BIT = 0x02
|
|
26
26
|
FIELDS = [IDENTITY_KEY].freeze
|
|
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/
|
|
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
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
# SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
|
|
7
|
-
require_relative '
|
|
7
|
+
require_relative 'jaeger/text_map_propagator'
|
|
8
8
|
|
|
9
9
|
# OpenTelemetry is an open source observability framework, providing a
|
|
10
10
|
# general-purpose API, SDK, and related tools required for the instrumentation
|
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
|
|
@@ -23,104 +23,6 @@ dependencies:
|
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: '1.1'
|
|
26
|
-
- !ruby/object:Gem::Dependency
|
|
27
|
-
name: minitest
|
|
28
|
-
requirement: !ruby/object:Gem::Requirement
|
|
29
|
-
requirements:
|
|
30
|
-
- - "~>"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '5.0'
|
|
33
|
-
type: :development
|
|
34
|
-
prerelease: false
|
|
35
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
-
requirements:
|
|
37
|
-
- - "~>"
|
|
38
|
-
- !ruby/object:Gem::Version
|
|
39
|
-
version: '5.0'
|
|
40
|
-
- !ruby/object:Gem::Dependency
|
|
41
|
-
name: opentelemetry-sdk
|
|
42
|
-
requirement: !ruby/object:Gem::Requirement
|
|
43
|
-
requirements:
|
|
44
|
-
- - "~>"
|
|
45
|
-
- !ruby/object:Gem::Version
|
|
46
|
-
version: '1.2'
|
|
47
|
-
type: :development
|
|
48
|
-
prerelease: false
|
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
-
requirements:
|
|
51
|
-
- - "~>"
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1.2'
|
|
54
|
-
- !ruby/object:Gem::Dependency
|
|
55
|
-
name: rake
|
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
|
57
|
-
requirements:
|
|
58
|
-
- - "~>"
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
version: '13.3'
|
|
61
|
-
type: :development
|
|
62
|
-
prerelease: false
|
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '13.3'
|
|
68
|
-
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: rubocop
|
|
70
|
-
requirement: !ruby/object:Gem::Requirement
|
|
71
|
-
requirements:
|
|
72
|
-
- - "~>"
|
|
73
|
-
- !ruby/object:Gem::Version
|
|
74
|
-
version: '1.65'
|
|
75
|
-
type: :development
|
|
76
|
-
prerelease: false
|
|
77
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
-
requirements:
|
|
79
|
-
- - "~>"
|
|
80
|
-
- !ruby/object:Gem::Version
|
|
81
|
-
version: '1.65'
|
|
82
|
-
- !ruby/object:Gem::Dependency
|
|
83
|
-
name: simplecov
|
|
84
|
-
requirement: !ruby/object:Gem::Requirement
|
|
85
|
-
requirements:
|
|
86
|
-
- - "~>"
|
|
87
|
-
- !ruby/object:Gem::Version
|
|
88
|
-
version: 0.22.0
|
|
89
|
-
type: :development
|
|
90
|
-
prerelease: false
|
|
91
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
-
requirements:
|
|
93
|
-
- - "~>"
|
|
94
|
-
- !ruby/object:Gem::Version
|
|
95
|
-
version: 0.22.0
|
|
96
|
-
- !ruby/object:Gem::Dependency
|
|
97
|
-
name: yard
|
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
|
99
|
-
requirements:
|
|
100
|
-
- - "~>"
|
|
101
|
-
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0.9'
|
|
103
|
-
type: :development
|
|
104
|
-
prerelease: false
|
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
106
|
-
requirements:
|
|
107
|
-
- - "~>"
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0.9'
|
|
110
|
-
- !ruby/object:Gem::Dependency
|
|
111
|
-
name: yard-doctest
|
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
|
113
|
-
requirements:
|
|
114
|
-
- - "~>"
|
|
115
|
-
- !ruby/object:Gem::Version
|
|
116
|
-
version: 0.1.6
|
|
117
|
-
type: :development
|
|
118
|
-
prerelease: false
|
|
119
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
120
|
-
requirements:
|
|
121
|
-
- - "~>"
|
|
122
|
-
- !ruby/object:Gem::Version
|
|
123
|
-
version: 0.1.6
|
|
124
26
|
description: Jaeger Context Propagation Extension for the OpenTelemetry framework
|
|
125
27
|
email:
|
|
126
28
|
- cncf-opentelemetry-contributors@lists.cncf.io
|
|
@@ -140,10 +42,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
|
|
|
140
42
|
licenses:
|
|
141
43
|
- Apache-2.0
|
|
142
44
|
metadata:
|
|
143
|
-
changelog_uri: https://
|
|
144
|
-
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
|
|
145
47
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
|
146
|
-
documentation_uri: https://
|
|
48
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-jaeger/0.25.2
|
|
147
49
|
rdoc_options: []
|
|
148
50
|
require_paths:
|
|
149
51
|
- lib
|
|
@@ -158,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
158
60
|
- !ruby/object:Gem::Version
|
|
159
61
|
version: '0'
|
|
160
62
|
requirements: []
|
|
161
|
-
rubygems_version: 4.0.
|
|
63
|
+
rubygems_version: 4.0.16
|
|
162
64
|
specification_version: 4
|
|
163
65
|
summary: Jaeger Context Propagation Extension for the OpenTelemetry framework
|
|
164
66
|
test_files: []
|