opentelemetry-instrumentation-ethon 0.27.0 → 0.28.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: a10aefb2b3c503be55bf54ddc3c2d0fe69d0d143106d03abc659f45a5426c878
4
- data.tar.gz: 1b4307016331351fe8f8be7320a6636dece386695b6ecfcc82b8903f05ce92df
3
+ metadata.gz: a5a570ef58e28d40ab43d412a39cef57dea827ff44059bb79c6e4bbe1fcadc43
4
+ data.tar.gz: 429d46f5b1bf04767dc7f5c0f2aafb36c9d0cfab37ade13377742fea68c05871
5
5
  SHA512:
6
- metadata.gz: e5fb931f0f11d03e200f57dbfad551afc304acd35e12cd86a28493f81c371db33fe9366f21e2a053a9564cdf664b0db838ff0f4b5a3c10ef5fecd1cedd871a04
7
- data.tar.gz: db64e4a70ad09bb043d01c95d7642d096e134e03baf8334d3fd40d90e31d8f6389b844df56259d305d2f573f47b228ad9e5164c3db6b7cfde6147041b6c173d4
6
+ metadata.gz: 4645fd1941d5c94e2bc99853bcd98869f003aa2e7485afa9e2428644525744ac238bd2ec3f90b4daefd052ba17a6b4054d5d375477dc35f0ca11e63c6d93d96a
7
+ data.tar.gz: 63e177afb25eed8e6ed2ef721a21b3a58c6e87d21226881d3387b1cd371fd2c3656ad3789f08a81b8b6233b81571163f80aafca22b98d3eb8759c99a138bbb61
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Release History: opentelemetry-instrumentation-ethon
2
2
 
3
+ ### v0.28.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.27.0 / 2026-01-13
4
9
 
5
10
  * ADDED: HTTP Client Semconv v1.17 Span Naming
@@ -7,7 +12,6 @@
7
12
  ### v0.26.0 / 2025-11-26
8
13
 
9
14
  * BREAKING CHANGE: Update Ethon span name when unknown method
10
-
11
15
  * ADDED: Update Ethon span name when unknown method
12
16
 
13
17
  ### v0.25.1 / 2025-11-25
@@ -17,7 +21,6 @@
17
21
  ### v0.25.0 / 2025-10-22
18
22
 
19
23
  * BREAKING CHANGE: Min Ruby Version 3.2
20
-
21
24
  * ADDED: Min Ruby Version 3.2
22
25
 
23
26
  ### v0.24.2 / 2025-10-14
@@ -43,7 +46,6 @@
43
46
  ### v0.22.0 / 2025-01-16
44
47
 
45
48
  * BREAKING CHANGE: Set minimum supported version to Ruby 3.1
46
-
47
49
  * ADDED: Set minimum supported version to Ruby 3.1
48
50
 
49
51
  ### v0.21.9 / 2024-11-26
@@ -85,7 +87,6 @@
85
87
  ### v0.21.0 / 2023-04-17
86
88
 
87
89
  * BREAKING CHANGE: Drop support for EoL Ruby 2.7
88
-
89
90
  * ADDED: Drop support for EoL Ruby 2.7
90
91
 
91
92
  ### v0.20.1 / 2023-01-14
@@ -121,7 +122,6 @@
121
122
  ### v0.19.0 / 2021-06-23
122
123
 
123
124
  * BREAKING CHANGE: Total order constraint on span.status=
124
-
125
125
  * FIXED: Total order constraint on span.status=
126
126
 
127
127
  ### v0.18.0 / 2021-05-21
@@ -146,7 +146,6 @@
146
146
  ### v0.14.0 / 2021-02-03
147
147
 
148
148
  * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
149
-
150
149
  * ADDED: Replace getter and setter callables and remove rack specific propagators
151
150
 
152
151
  ### v0.13.0 / 2021-01-29
@@ -168,14 +167,12 @@
168
167
  ### v0.9.0 / 2020-11-27
169
168
 
170
169
  * BREAKING CHANGE: Add timeout for force_flush and shutdown
171
-
172
170
  * ADDED: Add timeout for force_flush and shutdown
173
171
 
174
172
  ### v0.8.0 / 2020-10-27
175
173
 
176
174
  * BREAKING CHANGE: Move context/span methods to Trace module
177
175
  * BREAKING CHANGE: Remove 'canonical' from status codes
178
-
179
176
  * FIXED: Move context/span methods to Trace module
180
177
  * FIXED: Remove 'canonical' from status codes
181
178
 
data/README.md CHANGED
@@ -55,16 +55,12 @@ The `opentelemetry-instrumentation-all` gem is distributed under the Apache 2.0
55
55
 
56
56
  ## HTTP semantic convention stability
57
57
 
58
- In the OpenTelemetry ecosystem, HTTP semantic conventions have now reached a stable state. However, the initial Ethon instrumentation was introduced before this stability was achieved, which resulted in HTTP attributes being based on an older version of the semantic conventions.
59
-
60
- 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.
58
+ 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.
61
59
 
62
60
  When setting the value for `OTEL_SEMCONV_STABILITY_OPT_IN`, you can specify which conventions you wish to adopt:
63
61
 
64
- - `http` - Emits the stable HTTP and networking conventions and ceases emitting the old conventions previously emitted by the instrumentation.
65
- - `http/dup` - Emits both the old and stable HTTP and networking conventions, enabling a phased rollout of the stable semantic conventions.
66
- - Default behavior (in the absence of either value) is to continue emitting the old HTTP and networking conventions the instrumentation previously emitted.
67
-
68
- During the transition from old to stable conventions, Ethon instrumentation code comes in three patch versions: `dup`, `old`, and `stable`. These versions are identical except for the attributes they send. Any changes to Ethon instrumentation should consider all three patches.
62
+ - `http` - Emits the stable HTTP and networking conventions.
63
+ - `http/dup` - **DEPRECATED: Will be removed on April 15, 2026.** Emits both the old and stable HTTP and networking conventions.
64
+ - `old` - **DEPRECATED: Will be removed on April 15, 2026.** Emits the old HTTP and networking conventions.
69
65
 
70
66
  For additional information on migration, please refer to our [documentation](https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/).
@@ -11,7 +11,7 @@ module OpenTelemetry
11
11
  # @api private
12
12
  module HttpHelper
13
13
  # Lightweight struct to hold span creation attributes
14
- SpanCreationAttributes = Struct.new(:span_name, :attributes, keyword_init: true)
14
+ SpanCreationAttributes = Struct.new(:span_name, :attributes)
15
15
 
16
16
  # Pre-computed mapping to avoid string allocations during normalization
17
17
  METHOD_CACHE = {
@@ -46,8 +46,8 @@ module OpenTelemetry
46
46
 
47
47
  private_constant :METHOD_CACHE
48
48
 
49
- OLD_SPAN_NAMES_BY_METHOD = METHOD_CACHE.values.uniq.each_with_object({}) do |method, hash|
50
- hash[method] = "HTTP #{method}"
49
+ OLD_SPAN_NAMES_BY_METHOD = METHOD_CACHE.values.uniq.to_h do |method|
50
+ [method, "HTTP #{method}"]
51
51
  end.freeze
52
52
 
53
53
  private_constant :OLD_SPAN_NAMES_BY_METHOD
@@ -29,14 +29,20 @@ module OpenTelemetry
29
29
  values = stability_opt_in.split(',').map(&:strip)
30
30
 
31
31
  if values.include?('http/dup')
32
+ emit_old_semconv_deprecation_warning('http/dup')
32
33
  'dup'
33
- elsif values.include?('http')
34
- 'stable'
35
- else
34
+ elsif values.include?('old')
35
+ emit_old_semconv_deprecation_warning('old')
36
36
  'old'
37
+ else
38
+ 'stable'
37
39
  end
38
40
  end
39
41
 
42
+ def emit_old_semconv_deprecation_warning(option)
43
+ 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.")
44
+ end
45
+
40
46
  def require_dependencies_dup
41
47
  require_relative 'patches/dup/easy'
42
48
  require_relative 'patches/multi'
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Ethon
10
- VERSION = '0.27.0'
10
+ VERSION = '0.28.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-ethon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.27.0
4
+ version: 0.28.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2026-01-13 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
@@ -49,11 +48,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
49
48
  licenses:
50
49
  - Apache-2.0
51
50
  metadata:
52
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-ethon/0.27.0/file/CHANGELOG.md
51
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-ethon/0.28.0/file/CHANGELOG.md
53
52
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/ethon
54
53
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
55
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-ethon/0.27.0
56
- post_install_message:
54
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-ethon/0.28.0
57
55
  rdoc_options: []
58
56
  require_paths:
59
57
  - lib
@@ -68,8 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
68
66
  - !ruby/object:Gem::Version
69
67
  version: '0'
70
68
  requirements: []
71
- rubygems_version: 3.4.19
72
- signing_key:
69
+ rubygems_version: 4.0.3
73
70
  specification_version: 4
74
71
  summary: Ethon instrumentation for the OpenTelemetry framework
75
72
  test_files: []