opentelemetry-propagator-xray 0.26.0 → 0.26.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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7a8c7896357a650015a8d008da4faf15b525b783fbe7a894042251cdafcfd7b1
|
|
4
|
+
data.tar.gz: 921e90d4e947e60fc777cd48c762cf86bdb0c7c971b7e120117434d85bd5de73
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1e703d3c64879aa9e67c6e4489733e0c37559c7f869e88145f0907434d4fbad5c122827ee9aeb2a311a5ceb05808abd08bc14a50ff6ae0a27abfef15bb05a862
|
|
7
|
+
data.tar.gz: c3cf2ba012c420c6407ab357db1b2a2a6674e7dad6f60caf738a2c97dffe082d7b7c622672e545ed70d64350e854f6215ca4dd04db3aacb073660d11e078fa07
|
data/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
# Release History: opentelemetry-propagator-xray
|
|
2
2
|
|
|
3
|
+
### v0.26.1 / 2026-02-24
|
|
4
|
+
|
|
5
|
+
* FIXED: Handle `Self` field in X-Amzn-Trace-Id header (#1958)
|
|
6
|
+
* FIXED: Parse X-Amzn-Trace-Id header fields individually by name
|
|
7
|
+
|
|
3
8
|
### v0.26.0 / 2025-10-22
|
|
4
9
|
|
|
5
10
|
* BREAKING CHANGE: Min Ruby Version 3.2
|
|
6
|
-
|
|
7
11
|
* ADDED: Min Ruby Version 3.2
|
|
8
12
|
|
|
9
13
|
### v0.25.0 / 2025-09-30
|
|
@@ -17,7 +21,6 @@
|
|
|
17
21
|
### v0.23.0 / 2025-01-16
|
|
18
22
|
|
|
19
23
|
* BREAKING CHANGE: Set minimum supported version to Ruby 3.1
|
|
20
|
-
|
|
21
24
|
* ADDED: Set minimum supported version to Ruby 3.1
|
|
22
25
|
|
|
23
26
|
### v0.22.3 / 2024-11-26
|
|
@@ -34,14 +37,13 @@
|
|
|
34
37
|
|
|
35
38
|
### v0.22.0 / 2023-04-17
|
|
36
39
|
|
|
37
|
-
* BREAKING CHANGE: Drop support for EoL Ruby 2.7
|
|
38
|
-
|
|
39
|
-
* ADDED: Drop support for EoL Ruby 2.7
|
|
40
|
+
* BREAKING CHANGE: Drop support for EoL Ruby 2.7
|
|
41
|
+
* ADDED: Drop support for EoL Ruby 2.7
|
|
40
42
|
|
|
41
43
|
### v0.21.1 / 2023-01-14
|
|
42
44
|
|
|
43
|
-
* DOCS: Fix gem homepage
|
|
44
|
-
* DOCS: More gem documentation fixes
|
|
45
|
+
* DOCS: Fix gem homepage
|
|
46
|
+
* DOCS: More gem documentation fixes
|
|
45
47
|
|
|
46
48
|
### v0.21.0 / 2022-06-09
|
|
47
49
|
|
|
@@ -53,12 +55,12 @@
|
|
|
53
55
|
|
|
54
56
|
### v0.20.0 / 2021-08-12
|
|
55
57
|
|
|
56
|
-
* ADDED: Xray compliant ids
|
|
58
|
+
* ADDED: Xray compliant ids
|
|
57
59
|
|
|
58
60
|
### v0.19.0 / 2021-06-23
|
|
59
61
|
|
|
60
62
|
* FIXED: XRay propagator null exception (#833)
|
|
61
|
-
* ADDED: Add Tracer.non_recording_span to API
|
|
63
|
+
* ADDED: Add Tracer.non_recording_span to API
|
|
62
64
|
|
|
63
65
|
### v0.18.0 / 2021-05-21
|
|
64
66
|
|
|
@@ -18,11 +18,23 @@ module OpenTelemetry
|
|
|
18
18
|
# Propagates context in carriers in the xray single header format
|
|
19
19
|
class TextMapPropagator
|
|
20
20
|
XRAY_CONTEXT_KEY = 'X-Amzn-Trace-Id'
|
|
21
|
-
XRAY_CONTEXT_REGEX = /\ARoot=(?<trace_id>([a-z0-9\-]{35}))(?:;Parent=(?<span_id>([a-z0-9]{16})))?(?:;Sampled=(?<sampling_state>[01d](?![0-9a-f])))?(?:;(?<trace_state>.*))?\Z/ # rubocop:disable Lint/MixedRegexpCaptureTypes
|
|
22
21
|
SAMPLED_VALUES = %w[1 d].freeze
|
|
23
22
|
FIELDS = [XRAY_CONTEXT_KEY].freeze
|
|
24
23
|
|
|
25
|
-
|
|
24
|
+
# Header parsing constants
|
|
25
|
+
KV_PAIR_DELIMITER = ';'
|
|
26
|
+
KEY_AND_VALUE_DELIMITER = '='
|
|
27
|
+
TRACE_ID_KEY = 'Root'
|
|
28
|
+
PARENT_ID_KEY = 'Parent'
|
|
29
|
+
SAMPLED_FLAG_KEY = 'Sampled'
|
|
30
|
+
TRACE_ID_LENGTH = 35
|
|
31
|
+
SPAN_ID_LENGTH = 16
|
|
32
|
+
VALID_SAMPLED_VALUES = %w[0 1 d].freeze
|
|
33
|
+
|
|
34
|
+
private_constant :XRAY_CONTEXT_KEY, :SAMPLED_VALUES, :FIELDS,
|
|
35
|
+
:KV_PAIR_DELIMITER, :KEY_AND_VALUE_DELIMITER,
|
|
36
|
+
:TRACE_ID_KEY, :PARENT_ID_KEY, :SAMPLED_FLAG_KEY,
|
|
37
|
+
:TRACE_ID_LENGTH, :SPAN_ID_LENGTH, :VALID_SAMPLED_VALUES
|
|
26
38
|
|
|
27
39
|
# Extract trace context from the supplied carrier.
|
|
28
40
|
# If extraction fails, the original context will be returned
|
|
@@ -90,11 +102,56 @@ module OpenTelemetry
|
|
|
90
102
|
private
|
|
91
103
|
|
|
92
104
|
def parse_header(header)
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
105
|
+
trace_id = nil
|
|
106
|
+
span_id = nil
|
|
107
|
+
sampling_state = nil
|
|
108
|
+
trace_state_parts = []
|
|
109
|
+
|
|
110
|
+
header.split(KV_PAIR_DELIMITER).each do |pair|
|
|
111
|
+
# Split only on first '=' to handle values that might contain '='
|
|
112
|
+
key, value = pair.split(KEY_AND_VALUE_DELIMITER, 2)
|
|
113
|
+
next unless key && value
|
|
114
|
+
|
|
115
|
+
case key
|
|
116
|
+
when TRACE_ID_KEY
|
|
117
|
+
trace_id = value if valid_trace_id?(value)
|
|
118
|
+
when PARENT_ID_KEY
|
|
119
|
+
span_id = value if valid_span_id?(value)
|
|
120
|
+
when SAMPLED_FLAG_KEY
|
|
121
|
+
sampling_state = value if valid_sampling_state?(value)
|
|
122
|
+
when 'Self'
|
|
123
|
+
# Ignore Self field added by load balancers
|
|
124
|
+
next
|
|
125
|
+
else
|
|
126
|
+
# Collect other fields as potential tracestate
|
|
127
|
+
trace_state_parts << pair
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
return nil unless trace_id && span_id
|
|
132
|
+
|
|
133
|
+
{
|
|
134
|
+
'trace_id' => trace_id,
|
|
135
|
+
'span_id' => span_id,
|
|
136
|
+
'sampling_state' => sampling_state,
|
|
137
|
+
'trace_state' => trace_state_parts.empty? ? nil : trace_state_parts.join(KV_PAIR_DELIMITER)
|
|
138
|
+
}
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def valid_trace_id?(value)
|
|
142
|
+
return false unless value.length == TRACE_ID_LENGTH
|
|
143
|
+
return false unless value.start_with?('1-')
|
|
144
|
+
return false unless value[10] == '-'
|
|
145
|
+
|
|
146
|
+
true
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def valid_span_id?(value)
|
|
150
|
+
value.length == SPAN_ID_LENGTH && value.match?(/\A[a-f0-9]+\z/)
|
|
151
|
+
end
|
|
96
152
|
|
|
97
|
-
|
|
153
|
+
def valid_sampling_state?(value)
|
|
154
|
+
VALID_SAMPLED_VALUES.include?(value)
|
|
98
155
|
end
|
|
99
156
|
|
|
100
157
|
# Convert an id from a hex encoded string to byte array. Assumes the input id has already been
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opentelemetry-propagator-xray
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.26.
|
|
4
|
+
version: 0.26.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenTelemetry Authors
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: opentelemetry-api
|
|
@@ -45,10 +44,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
|
|
|
45
44
|
licenses:
|
|
46
45
|
- Apache-2.0
|
|
47
46
|
metadata:
|
|
48
|
-
changelog_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.26.
|
|
47
|
+
changelog_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.26.1/file/CHANGELOG.md
|
|
49
48
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/propagator/xray
|
|
50
49
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
|
|
51
|
-
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.26.
|
|
50
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.26.1
|
|
52
51
|
post_install_message: ''
|
|
53
52
|
rdoc_options: []
|
|
54
53
|
require_paths:
|
|
@@ -64,8 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
64
63
|
- !ruby/object:Gem::Version
|
|
65
64
|
version: '0'
|
|
66
65
|
requirements: []
|
|
67
|
-
rubygems_version:
|
|
68
|
-
signing_key:
|
|
66
|
+
rubygems_version: 4.0.3
|
|
69
67
|
specification_version: 4
|
|
70
68
|
summary: XRay Context Propagation Extension for the OpenTelemetry framework
|
|
71
69
|
test_files: []
|