opentelemetry-propagator-xray 0.22.3 → 0.24.0
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: 9e1da8daf17d8e2ce3fa9d56afe8dae170e46859b932a034c8cf9ae461e5c191
|
4
|
+
data.tar.gz: '058cb3d7119ee981fe8fd35329ae85bde2bf0ef4359d71ff9279fa390d416b0f'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2121e1ed83bc4a2a29f4d6561bd50d0fb93d6dee36064cebf4aca1d568bddd24fd0133efb4fce6f769bc1aa1f2da2741df6945d95268ba4b8c0f67ba0ba82073
|
7
|
+
data.tar.gz: bec923bfba589a13089d2e701e7a7819b7e85ebee9b791d28d37974ba49800668960827b281f27db77a5ceba1ad4cf490cf3483efd9939c7f750f33e357b64f4
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Release History: opentelemetry-propagator-xray
|
2
2
|
|
3
|
+
### v0.24.0 / 2025-05-06
|
4
|
+
|
5
|
+
* ADDED: Contribute xray lambda propagator
|
6
|
+
|
7
|
+
### v0.23.0 / 2025-01-16
|
8
|
+
|
9
|
+
* BREAKING CHANGE: Set minimum supported version to Ruby 3.1
|
10
|
+
|
11
|
+
* ADDED: Set minimum supported version to Ruby 3.1
|
12
|
+
|
3
13
|
### v0.22.3 / 2024-11-26
|
4
14
|
|
5
15
|
* (No significant changes)
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright OpenTelemetry Authors
|
4
|
+
#
|
5
|
+
# SPDX-License-Identifier: Apache-2.0
|
6
|
+
|
7
|
+
# OpenTelemetry is an open source observability framework, providing a
|
8
|
+
# general-purpose API, SDK, and related tools required for the instrumentation
|
9
|
+
# of cloud-native software, frameworks, and libraries.
|
10
|
+
#
|
11
|
+
# The OpenTelemetry module provides global accessors for telemetry objects.
|
12
|
+
# See the documentation for the `opentelemetry-api` gem for details.
|
13
|
+
module OpenTelemetry
|
14
|
+
# Namespace for OpenTelemetry propagator extension libraries
|
15
|
+
module Propagator
|
16
|
+
# Namespace for OpenTelemetry XRay propagation
|
17
|
+
module XRay
|
18
|
+
# Implementation of AWS X-Ray Trace Header propagation with special handling for
|
19
|
+
# Lambda's _X_AMZN_TRACE_ID environment variable
|
20
|
+
class LambdaTextMapPropagator < TextMapPropagator
|
21
|
+
AWS_TRACE_HEADER_ENV_KEY = '_X_AMZN_TRACE_ID'
|
22
|
+
|
23
|
+
# Extract trace context from the supplied carrier or from Lambda environment variable
|
24
|
+
# If extraction fails, the original context will be returned
|
25
|
+
#
|
26
|
+
# @param [Carrier] carrier The carrier to get the header from
|
27
|
+
# @param [optional Context] context Context to be updated with the trace context
|
28
|
+
# extracted from the carrier. Defaults to +Context.current+.
|
29
|
+
# @param [optional Getter] getter If the optional getter is provided, it
|
30
|
+
# will be used to read the header from the carrier, otherwise the default
|
31
|
+
# text map getter will be used.
|
32
|
+
#
|
33
|
+
# @return [Context] context updated with extracted baggage, or the original context
|
34
|
+
# if extraction fails
|
35
|
+
def extract(carrier, context: Context.current, getter: Context::Propagation.text_map_getter)
|
36
|
+
# Check if the original input context already has a valid span
|
37
|
+
span_context = Trace.current_span(context).context
|
38
|
+
# If original context is valid, just return it - do not extract from carrier
|
39
|
+
return context if span_context.valid?
|
40
|
+
|
41
|
+
# First try to extract from the carrier using the standard X-Ray propagator
|
42
|
+
xray_context = super
|
43
|
+
|
44
|
+
# Check if we successfully extracted a context from the carrier
|
45
|
+
span_context = Trace.current_span(xray_context).context
|
46
|
+
return xray_context if span_context.valid?
|
47
|
+
|
48
|
+
# If not, check for the Lambda environment variable
|
49
|
+
trace_header = ENV.fetch(AWS_TRACE_HEADER_ENV_KEY, nil)
|
50
|
+
return xray_context unless trace_header
|
51
|
+
|
52
|
+
# Create a carrier with the trace header and extract from it
|
53
|
+
env_carrier = { XRAY_CONTEXT_KEY => trace_header }
|
54
|
+
super(env_carrier, context: xray_context, getter: getter)
|
55
|
+
rescue OpenTelemetry::Error
|
56
|
+
context
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -12,6 +12,7 @@
|
|
12
12
|
# See the documentation for the `opentelemetry-api` gem for details.
|
13
13
|
|
14
14
|
require_relative 'xray/text_map_propagator'
|
15
|
+
require_relative 'xray/lambda_text_map_propagator'
|
15
16
|
|
16
17
|
module OpenTelemetry
|
17
18
|
# Namespace for OpenTelemetry propagator extension libraries
|
@@ -22,7 +23,8 @@ module OpenTelemetry
|
|
22
23
|
|
23
24
|
DEBUG_CONTEXT_KEY = Context.create_key('xray-debug-key')
|
24
25
|
TEXT_MAP_PROPAGATOR = TextMapPropagator.new
|
25
|
-
|
26
|
+
LAMBDA_TEXT_MAP_PROPAGATOR = LambdaTextMapPropagator.new
|
27
|
+
private_constant :DEBUG_CONTEXT_KEY, :TEXT_MAP_PROPAGATOR, :LAMBDA_TEXT_MAP_PROPAGATOR
|
26
28
|
|
27
29
|
# @api private
|
28
30
|
# Returns a new context with the xray debug flag enabled
|
@@ -41,6 +43,12 @@ module OpenTelemetry
|
|
41
43
|
def text_map_propagator
|
42
44
|
TEXT_MAP_PROPAGATOR
|
43
45
|
end
|
46
|
+
|
47
|
+
# Returns a text map propagator that propagates context in the XRay
|
48
|
+
# format with special handling for Lambda environment.
|
49
|
+
def lambda_text_map_propagator
|
50
|
+
LAMBDA_TEXT_MAP_PROPAGATOR
|
51
|
+
end
|
44
52
|
end
|
45
53
|
end
|
46
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opentelemetry-propagator-xray
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.24.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenTelemetry Authors
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-05-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -24,104 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: bundler
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '2.4'
|
34
|
-
type: :development
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '2.4'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: minitest
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '5.0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '5.0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: rake
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '13.0'
|
62
|
-
type: :development
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '13.0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubocop
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 1.68.0
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 1.68.0
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: rubocop-performance
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 1.23.0
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.23.0
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: simplecov
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 0.22.0
|
104
|
-
type: :development
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - "~>"
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: 0.22.0
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: yard
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0.9'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0.9'
|
125
27
|
description: XRay Context Propagation Extension for the OpenTelemetry framework
|
126
28
|
email:
|
127
29
|
- cncf-opentelemetry-contributors@lists.cncf.io
|
@@ -136,20 +38,18 @@ files:
|
|
136
38
|
- lib/opentelemetry-propagator-xray.rb
|
137
39
|
- lib/opentelemetry/propagator/xray.rb
|
138
40
|
- lib/opentelemetry/propagator/xray/id_generator.rb
|
41
|
+
- lib/opentelemetry/propagator/xray/lambda_text_map_propagator.rb
|
139
42
|
- lib/opentelemetry/propagator/xray/text_map_propagator.rb
|
140
43
|
- lib/opentelemetry/propagator/xray/version.rb
|
141
44
|
homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
|
142
45
|
licenses:
|
143
46
|
- Apache-2.0
|
144
47
|
metadata:
|
145
|
-
changelog_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.
|
48
|
+
changelog_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.24.0/file/CHANGELOG.md
|
146
49
|
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/propagator/xray
|
147
50
|
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
|
148
|
-
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.
|
149
|
-
post_install_message:
|
150
|
-
Ruby 3.0 has reached EoL 2024-04-23. OTel Ruby Contrib gems will no longer accept new features or bug fixes for Ruby 3.0 after 2025-01-15. Please upgrade to Ruby 3.1 or higher to continue receiving updates.
|
151
|
-
|
152
|
-
Rails 6.1 has reached EoL 2024-10-01. OTel Ruby Contrib gems will no longer accept new features or bug fixes for Rails 6.1 after 2025-01-15. Please upgrade to Rails 7.0 or higher to continue receiving updates.
|
51
|
+
documentation_uri: https://rubydoc.info/gems/opentelemetry-propagator-xray/0.24.0
|
52
|
+
post_install_message: ''
|
153
53
|
rdoc_options: []
|
154
54
|
require_paths:
|
155
55
|
- lib
|
@@ -157,15 +57,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
157
57
|
requirements:
|
158
58
|
- - ">="
|
159
59
|
- !ruby/object:Gem::Version
|
160
|
-
version: '3.
|
60
|
+
version: '3.1'
|
161
61
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
162
62
|
requirements:
|
163
63
|
- - ">="
|
164
64
|
- !ruby/object:Gem::Version
|
165
65
|
version: '0'
|
166
66
|
requirements: []
|
167
|
-
rubygems_version: 3.
|
168
|
-
signing_key:
|
67
|
+
rubygems_version: 3.3.27
|
68
|
+
signing_key:
|
169
69
|
specification_version: 4
|
170
70
|
summary: XRay Context Propagation Extension for the OpenTelemetry framework
|
171
71
|
test_files: []
|