opentelemetry-instrumentation-rack 0.29.0 → 0.30.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: aa4c2bf498d66000899c1a358e2bbe5f9f696507a8b0e8a06ad6fd952f3a5f14
4
- data.tar.gz: 2fcb1dcbe88d67b34bc2547ba0299cd67f78f883a50ce8c65b08105d8bf5d594
3
+ metadata.gz: 3df8f873c474614c5e6b28b1543627ed7947af99f2b21bf51dd86d421527b988
4
+ data.tar.gz: e00eff8d8c73b6618982c629259f5ece9a7276b9b32cb7bf561923fed909c7f5
5
5
  SHA512:
6
- metadata.gz: 685050b61fdf043457ebac51882b6936760df2be76982ba6e35a92d235e4aee1f3701fb106f3f6cbf8edd764443a809e5e101c759611df83d58fef70d4503735
7
- data.tar.gz: 9d1dff410595600dbcd09423e946d099313a509760b3852bdb3762485aa6441d3d9e27d66d4d55db5bf92c933d84bb9b63cdd072801bc99f74ad072c3e13462d
6
+ metadata.gz: 24c2633dd344072d689ee4ee9a91773d4c08ea98d73265628512497aa9cdcf1a1b6bf92731070ff156c376039a19f68101f632452d91787570d14cfea4249d5a
7
+ data.tar.gz: 63afe0d1f08412326d0fd8d1242013257ed7ef0c177e51bd9f96fc7886f3d65860b2cf466964ed8da456b8d56d280bfaf258757782e1a59257a39e661489b778
data/CHANGELOG.md CHANGED
@@ -1,9 +1,13 @@
1
1
  # Release History: opentelemetry-instrumentation-rack
2
2
 
3
+ ### v0.30.0 / 2026-03-17
4
+
5
+ * BREAKING CHANGE: Default to stable HTTP semantic conventions (#2051)
6
+ * ADDED: Default to stable HTTP semantic conventions (#2051)
7
+
3
8
  ### v0.29.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.28.2 / 2025-10-07
@@ -29,7 +33,6 @@
29
33
  ### v0.26.0 / 2025-01-16
30
34
 
31
35
  * BREAKING CHANGE: Set minimum supported version to Ruby 3.1
32
-
33
36
  * ADDED: Set minimum supported version to Ruby 3.1
34
37
 
35
38
  ### v0.25.0 / 2024-10-23
@@ -63,7 +66,6 @@
63
66
  ### v0.24.0 / 2024-01-06
64
67
 
65
68
  * BREAKING CHANGE: Use Rack Events By Default
66
-
67
69
  * ADDED: Use Rack Events By Default
68
70
  * FIXED: Backport Rack proxy event to middleware
69
71
 
@@ -91,7 +93,6 @@
91
93
 
92
94
  * BREAKING CHANGE: Remove retain_middleware_names Rack Option
93
95
  * BREAKING CHANGE: Drop support for EoL Ruby 2.7
94
-
95
96
  * ADDED: Remove retain_middleware_names Rack Option
96
97
  * ADDED: Drop support for EoL Ruby 2.7
97
98
  * ADDED: Use Rack::Events for instrumentation
@@ -130,7 +131,7 @@
130
131
 
131
132
  The default was to set the span name as the path of the request, we have
132
133
  corrected this as it was not adhering to the spec requirement using low
133
- cardinality span names. You can restore the previous behaviour of high
134
+ cardinality span names. You can restore the previous behavior of high
134
135
  cardinality span names by passing in a url quantization function that
135
136
  forwards the uri path. More details on this is available in the readme.
136
137
 
@@ -149,7 +150,6 @@ forwards the uri path. More details on this is available in the readme.
149
150
  ### v0.19.0 / 2021-06-23
150
151
 
151
152
  * BREAKING CHANGE: Total order constraint on span.status=
152
-
153
153
  * ADDED: Add Tracer.non_recording_span to API
154
154
  * FIXED: Total order constraint on span.status=
155
155
 
@@ -165,7 +165,6 @@ forwards the uri path. More details on this is available in the readme.
165
165
  ### v0.16.0 / 2021-03-17
166
166
 
167
167
  * BREAKING CHANGE: Pass env to url quantization rack config to allow more flexibility
168
-
169
168
  * ADDED: Pass env to url quantization rack config to allow more flexibility
170
169
  * ADDED: Add rack instrumentation config option to accept callable to filter requests to trace
171
170
  * FIXED: Example scripts now reference local common lib
@@ -178,7 +177,6 @@ forwards the uri path. More details on this is available in the readme.
178
177
  ### v0.14.0 / 2021-02-03
179
178
 
180
179
  * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
181
-
182
180
  * ADDED: Replace getter and setter callables and remove rack specific propagators
183
181
  * ADDED: Add untraced endpoints config to rack middleware
184
182
 
@@ -205,7 +203,6 @@ forwards the uri path. More details on this is available in the readme.
205
203
  ### v0.9.0 / 2020-11-27
206
204
 
207
205
  * BREAKING CHANGE: Add timeout for force_flush and shutdown
208
-
209
206
  * ADDED: Instrument rails
210
207
  * ADDED: Add timeout for force_flush and shutdown
211
208
 
@@ -213,7 +210,6 @@ forwards the uri path. More details on this is available in the readme.
213
210
 
214
211
  * BREAKING CHANGE: Move context/span methods to Trace module
215
212
  * BREAKING CHANGE: Remove 'canonical' from status codes
216
-
217
213
  * FIXED: Move context/span methods to Trace module
218
214
  * FIXED: Remove 'canonical' from status codes
219
215
 
data/README.md CHANGED
@@ -104,16 +104,12 @@ The `opentelemetry-instrumentation-rack` gem is distributed under the Apache 2.0
104
104
 
105
105
  ## HTTP semantic convention stability
106
106
 
107
- In the OpenTelemetry ecosystem, HTTP semantic conventions have now reached a stable state. However, the initial Rack instrumentation was introduced before this stability was achieved, which resulted in HTTP attributes being based on an older version of the semantic conventions.
108
-
109
- To facilitate the migration to stable semantic conventions, you can use the `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable. This variable allows you to opt-in to the new stable conventions, ensuring compatibility and future-proofing your instrumentation.
107
+ This instrumentation by default emits the stable HTTP semantic conventions. The `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable can be used to opt-in to the old or duplicate (both old and stable) semantic conventions.
110
108
 
111
109
  When setting the value for `OTEL_SEMCONV_STABILITY_OPT_IN`, you can specify which conventions you wish to adopt:
112
110
 
113
- - `http` - Emits the stable HTTP and networking conventions and ceases emitting the old conventions previously emitted by the instrumentation.
114
- - `http/dup` - Emits both the old and stable HTTP and networking conventions, enabling a phased rollout of the stable semantic conventions.
115
- - Default behavior (in the absence of either value) is to continue emitting the old HTTP and networking conventions the instrumentation previously emitted.
116
-
117
- During the transition from old to stable conventions, Rack instrumentation code comes in three patch versions: `dup`, `old`, and `stable`. These versions are identical except for the attributes they send. Any changes to Rack instrumentation should consider all three patches.
111
+ - `http` - Emits the stable HTTP and networking conventions.
112
+ - `http/dup` - **DEPRECATED: Will be removed on April 15, 2026.** Emits both the old and stable HTTP and networking conventions.
113
+ - `old` - **DEPRECATED: Will be removed on April 15, 2026.** Emits the old HTTP and networking conventions.
118
114
 
119
115
  For additional information on migration, please refer to our [documentation](https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/).
@@ -76,14 +76,20 @@ module OpenTelemetry
76
76
  values = stability_opt_in.split(',').map(&:strip)
77
77
 
78
78
  if values.include?('http/dup')
79
+ emit_old_semconv_deprecation_warning('http/dup')
79
80
  'dup'
80
- elsif values.include?('http')
81
- 'stable'
82
- else
81
+ elsif values.include?('old')
82
+ emit_old_semconv_deprecation_warning('old')
83
83
  'old'
84
+ else
85
+ 'stable'
84
86
  end
85
87
  end
86
88
 
89
+ def emit_old_semconv_deprecation_warning(option)
90
+ OpenTelemetry.logger.warn("The `#{option}` option for OTEL_SEMCONV_STABILITY_OPT_IN is deprecated and will be removed on April 15, 2026. Please migrate to the stable HTTP semantic conventions.")
91
+ end
92
+
87
93
  def require_dependencies_old
88
94
  require_relative 'middlewares/old/event_handler' if defined?(::Rack::Events)
89
95
  require_relative 'middlewares/old/tracer_middleware'
@@ -90,7 +90,7 @@ module OpenTelemetry
90
90
  # @note does nothing if the span is a non-recording span
91
91
  # @param [Rack::Request] The current HTTP request
92
92
  # @param [Rack::Response] The current HTTP response
93
- # @param [Exception] An unxpected error raised by the application
93
+ # @param [Exception] An unexpected error raised by the application
94
94
  def on_error(request, _, error)
95
95
  span = OpenTelemetry::Instrumentation::Rack.current_span
96
96
  return unless span.recording?
@@ -90,7 +90,7 @@ module OpenTelemetry
90
90
  # @note does nothing if the span is a non-recording span
91
91
  # @param [Rack::Request] The current HTTP request
92
92
  # @param [Rack::Response] The current HTTP response
93
- # @param [Exception] An unxpected error raised by the application
93
+ # @param [Exception] An unexpected error raised by the application
94
94
  def on_error(request, _, error)
95
95
  span = OpenTelemetry::Instrumentation::Rack.current_span
96
96
  return unless span.recording?
@@ -90,7 +90,7 @@ module OpenTelemetry
90
90
  # @note does nothing if the span is a non-recording span
91
91
  # @param [Rack::Request] The current HTTP request
92
92
  # @param [Rack::Response] The current HTTP response
93
- # @param [Exception] An unxpected error raised by the application
93
+ # @param [Exception] An unexpected error raised by the application
94
94
  def on_error(request, _, error)
95
95
  span = OpenTelemetry::Instrumentation::Rack.current_span
96
96
  return unless span.recording?
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rack
10
- VERSION = '0.29.0'
10
+ VERSION = '0.30.0'
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.29.0
4
+ version: 0.30.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-10-22 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: opentelemetry-instrumentation-base
@@ -52,11 +51,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
52
51
  licenses:
53
52
  - Apache-2.0
54
53
  metadata:
55
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.29.0/file/CHANGELOG.md
54
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.30.0/file/CHANGELOG.md
56
55
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/rack
57
56
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
58
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.29.0
59
- post_install_message:
57
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.30.0
60
58
  rdoc_options: []
61
59
  require_paths:
62
60
  - lib
@@ -71,8 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
69
  - !ruby/object:Gem::Version
72
70
  version: '0'
73
71
  requirements: []
74
- rubygems_version: 3.4.19
75
- signing_key:
72
+ rubygems_version: 4.0.3
76
73
  specification_version: 4
77
74
  summary: Rack instrumentation for the OpenTelemetry framework
78
75
  test_files: []