opentelemetry-instrumentation-http 0.28.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: feb5b23c7a36a0ea90576209babda48b3bc6c9df66e40c520576513f4ce1fe76
4
- data.tar.gz: d15b180dbb268b10ba557deb9c5b5805dfb9f3046a240f8a729e12f07a78f642
3
+ metadata.gz: 4543fe83a9f11f078468ed896e6c97b902600b8ca1e6f2851cb5fc074b87f992
4
+ data.tar.gz: f9cfa712de1fcb7dbdf013dcc396087ec4c1d7368a5aee1885aee28a3d79bad1
5
5
  SHA512:
6
- metadata.gz: 6304c10c4524e6864305b8b4eaa5d0a00d0517d677d58fe2bcb5a0319828165c0d574c8b6c8d7551896369298ecb1ce028967d7e93558b9b68a8c55622c7a98e
7
- data.tar.gz: 99361f4657967d1b60c6e3c4a77b5f6a115f852d1573d79f57e0e24e37370d8507b64e57f815aa90d610e968f60ad0e68a2527041d0fd822caf347881bad3ac3
6
+ metadata.gz: 308dad930e78f6c0d4a6c1054a87155f7da8262bf8ca8385d5a2b518ec78a2120e5b5497c71907f82bbf794a41e4a21c30fd2569ce9a164f6a80cbaa6f8bd7f8
7
+ data.tar.gz: ed2bbff794c2c357a4cf468a045be0f1f678ef5722e751e6dbe9ea642b926e760ff6917879546f0c6204e37c7e3384276fc1bbc2636a213997de87dd7f9d1197
data/CHANGELOG.md CHANGED
@@ -1,128 +1,135 @@
1
1
  # Release History: opentelemetry-instrumentation-http
2
2
 
3
- ### v0.28.0 / 2026-01-13
3
+ ## v0.30.0 / 2026-04-14
4
4
 
5
- * ADDED: HTTP Client Semconv v1.17 Span Naming
5
+ - BREAKING CHANGE: Min Ruby Version 3.3 (#2125)
6
+ - ADDED: Min Ruby Version 3.3 (#2125)
7
+ - ADDED: Add release tag into source code url of gem metadata (#1984)
6
8
 
7
- ### v0.27.1 / 2025-11-25
9
+ ## v0.29.0 / 2026-03-17
8
10
 
9
- * FIXED: Update support for unknown HTTP methods to match semantic conventions
11
+ - BREAKING CHANGE: Default to stable HTTP semantic conventions (#2051)
12
+ - ADDED: Default to stable HTTP semantic conventions (#2051)
10
13
 
11
- ### v0.27.0 / 2025-10-22
14
+ ## v0.28.0 / 2026-01-13
12
15
 
13
- * BREAKING CHANGE: Min Ruby Version 3.2
16
+ - ADDED: HTTP Client Semconv v1.17 Span Naming
14
17
 
15
- * ADDED: Min Ruby Version 3.2
18
+ ## v0.27.1 / 2025-11-25
16
19
 
17
- ### v0.26.1 / 2025-09-30
20
+ - FIXED: Update support for unknown HTTP methods to match semantic conventions
18
21
 
19
- * FIXED: Min OTel Ruby API 1.7
22
+ ## v0.27.0 / 2025-10-22
20
23
 
21
- ### v0.26.0 / 2025-09-30
24
+ - BREAKING CHANGE: Min Ruby Version 3.2
25
+ - ADDED: Min Ruby Version 3.2
22
26
 
23
- * ADDED: Bump minimum API Version to 1.7
27
+ ## v0.26.1 / 2025-09-30
24
28
 
25
- ### v0.25.1 / 2025-07-01
29
+ - FIXED: Min OTel Ruby API 1.7
26
30
 
27
- * FIXED: Update span name when semconv stability is enabled
31
+ ## v0.26.0 / 2025-09-30
28
32
 
29
- ### v0.25.0 / 2025-06-17
33
+ - ADDED: Bump minimum API Version to 1.7
30
34
 
31
- * ADDED: Add `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable [#1547](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/1547)
35
+ ## v0.25.1 / 2025-07-01
32
36
 
33
- ### v0.24.0 / 2025-01-16
37
+ - FIXED: Update span name when semconv stability is enabled
34
38
 
35
- * BREAKING CHANGE: Set minimum supported version to Ruby 3.1
39
+ ## v0.25.0 / 2025-06-17
36
40
 
37
- * ADDED: Set minimum supported version to Ruby 3.1
41
+ - ADDED: Add `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable [#1547](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/1547)
38
42
 
39
- ### v0.23.5 / 2024-11-26
43
+ ## v0.24.0 / 2025-01-16
40
44
 
41
- * CHANGED: Performance Freeze all range objects #1222
45
+ - BREAKING CHANGE: Set minimum supported version to Ruby 3.1
46
+ - ADDED: Set minimum supported version to Ruby 3.1
42
47
 
43
- ### v0.23.4 / 2024-07-23
48
+ ## v0.23.5 / 2024-11-26
44
49
 
45
- * DOCS: Add cspell to CI
50
+ - CHANGED: Performance Freeze all range objects #1222
46
51
 
47
- ### v0.23.3 / 2024-04-30
52
+ ## v0.23.4 / 2024-07-23
48
53
 
49
- * FIXED: Bundler conflict warnings
54
+ - DOCS: Add cspell to CI
50
55
 
51
- ### v0.23.2 / 2023-11-23
56
+ ## v0.23.3 / 2024-04-30
52
57
 
53
- * CHANGED: Applied Rubocop Performance Recommendations [#727](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/727)
58
+ - FIXED: Bundler conflict warnings
54
59
 
55
- ### v0.23.1 / 2023-06-05
60
+ ## v0.23.2 / 2023-11-23
56
61
 
57
- * FIXED: Base config options
62
+ - CHANGED: Applied Rubocop Performance Recommendations [#727](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/727)
58
63
 
59
- ### v0.23.0 / 2023-05-15
64
+ ## v0.23.1 / 2023-06-05
60
65
 
61
- * ADDED: Add span_preprocessor hook
66
+ - FIXED: Base config options
62
67
 
63
- ### v0.22.0 / 2023-04-17
68
+ ## v0.23.0 / 2023-05-15
64
69
 
65
- * BREAKING CHANGE: Drop support for EoL Ruby 2.7
70
+ - ADDED: Add span_preprocessor hook
66
71
 
67
- * ADDED: Drop support for EoL Ruby 2.7
72
+ ## v0.22.0 / 2023-04-17
68
73
 
69
- ### v0.21.0 / 2023-01-14
74
+ - BREAKING CHANGE: Drop support for EoL Ruby 2.7
75
+ - ADDED: Drop support for EoL Ruby 2.7
70
76
 
71
- * ADDED: Add request/response hooks to more http clients
72
- * DOCS: Fix gem homepage
73
- * DOCS: More gem documentation fixes
77
+ ## v0.21.0 / 2023-01-14
74
78
 
75
- ### v0.20.0 / 2022-06-09
79
+ - ADDED: Add request/response hooks to more http clients
80
+ - DOCS: Fix gem homepage
81
+ - DOCS: More gem documentation fixes
76
82
 
77
- * Upgrading Base dependency version
78
- * FIXED: Broken test file requirements
83
+ ## v0.20.0 / 2022-06-09
79
84
 
80
- ### v0.19.6 / 2022-05-05
85
+ - Upgrading Base dependency version
86
+ - FIXED: Broken test file requirements
81
87
 
82
- * (No significant changes)
88
+ ## v0.19.6 / 2022-05-05
83
89
 
84
- ### v0.19.5 / 2022-05-02
90
+ - (No significant changes)
85
91
 
86
- * FIXED: RubyGems Fallback
92
+ ## v0.19.5 / 2022-05-02
87
93
 
88
- ### v0.19.4 / 2022-02-02
94
+ - FIXED: RubyGems Fallback
89
95
 
90
- * FIXED: Excessive hash creation on context attr merging
96
+ ## v0.19.4 / 2022-02-02
91
97
 
92
- ### v0.19.3 / 2021-12-01
98
+ - FIXED: Excessive hash creation on context attr merging
93
99
 
94
- * FIXED: Change net attribute names to match the semantic conventions spec for http
100
+ ## v0.19.3 / 2021-12-01
95
101
 
96
- ### v0.19.2 / 2021-09-29
102
+ - FIXED: Change net attribute names to match the semantic conventions spec for http
97
103
 
98
- * (No significant changes)
104
+ ## v0.19.2 / 2021-09-29
99
105
 
100
- ### v0.19.1 / 2021-08-12
106
+ - (No significant changes)
101
107
 
102
- * (No significant changes)
108
+ ## v0.19.1 / 2021-08-12
103
109
 
104
- ### v0.19.0 / 2021-06-23
110
+ - (No significant changes)
105
111
 
106
- * BREAKING CHANGE: Total order constraint on span.status=
112
+ ## v0.19.0 / 2021-06-23
107
113
 
108
- * FIXED: Total order constraint on span.status=
114
+ - BREAKING CHANGE: Total order constraint on span.status=
115
+ - FIXED: Total order constraint on span.status=
109
116
 
110
- ### v0.18.0 / 2021-05-21
117
+ ## v0.18.0 / 2021-05-21
111
118
 
112
- * ADDED: Updated API dependency for 1.0.0.rc1
119
+ - ADDED: Updated API dependency for 1.0.0.rc1
113
120
 
114
- ### v0.17.0 / 2021-04-22
121
+ ## v0.17.0 / 2021-04-22
115
122
 
116
- * FIXED: Refactor propagators to add #fields
123
+ - FIXED: Refactor propagators to add #fields
117
124
 
118
- ### v0.16.2 / 2021-03-29
125
+ ## v0.16.2 / 2021-03-29
119
126
 
120
- * FIXED: HTTP Instrumentation should check for gem presence
127
+ - FIXED: HTTP Instrumentation should check for gem presence
121
128
 
122
- ### v0.16.1 / 2021-03-25
129
+ ## v0.16.1 / 2021-03-25
123
130
 
124
- * FIXED: HTTP instrumentation missing require
131
+ - FIXED: HTTP instrumentation missing require
125
132
 
126
- ### v0.16.0 / 2021-03-17
133
+ ## v0.16.0 / 2021-03-17
127
134
 
128
- * Initial release.
135
+ - Initial release.
data/README.md CHANGED
@@ -67,16 +67,12 @@ The `opentelemetry-instrumentation-http` gem is distributed under the Apache 2.0
67
67
 
68
68
  ## HTTP semantic convention stability
69
69
 
70
- In the OpenTelemetry ecosystem, HTTP semantic conventions have now reached a stable state. However, the initial HTTP instrumentation was introduced before this stability was achieved, which resulted in HTTP attributes being based on an older version of the semantic conventions.
71
-
72
- 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.
70
+ 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.
73
71
 
74
72
  When setting the value for `OTEL_SEMCONV_STABILITY_OPT_IN`, you can specify which conventions you wish to adopt:
75
73
 
76
- - `http` - Emits the stable HTTP and networking conventions and ceases emitting the old conventions previously emitted by the instrumentation.
77
- - `http/dup` - Emits both the old and stable HTTP and networking conventions, enabling a phased rollout of the stable semantic conventions.
78
- - Default behavior (in the absence of either value) is to continue emitting the old HTTP and networking conventions the instrumentation previously emitted.
79
-
80
- During the transition from old to stable conventions, HTTP instrumentation code comes in three patch versions: `dup`, `old`, and `stable`. These versions are identical except for the attributes they send. Any changes to HTTP instrumentation should consider all three patches.
74
+ - `http` - Emits the stable HTTP and networking conventions.
75
+ - `http/dup` - **DEPRECATED: Will be removed on April 15, 2026.** Emits both the old and stable HTTP and networking conventions.
76
+ - `old` - **DEPRECATED: Will be removed on April 15, 2026.** Emits the old HTTP and networking conventions.
81
77
 
82
78
  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
@@ -26,14 +26,20 @@ module OpenTelemetry
26
26
  values = stability_opt_in.split(',').map(&:strip)
27
27
 
28
28
  if values.include?('http/dup')
29
+ emit_old_semconv_deprecation_warning('http/dup')
29
30
  'dup'
30
- elsif values.include?('http')
31
- 'stable'
32
- else
31
+ elsif values.include?('old')
32
+ emit_old_semconv_deprecation_warning('old')
33
33
  'old'
34
+ else
35
+ 'stable'
34
36
  end
35
37
  end
36
38
 
39
+ def emit_old_semconv_deprecation_warning(option)
40
+ 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.")
41
+ end
42
+
37
43
  def patch_old
38
44
  ::HTTP::Client.prepend(Patches::Old::Client)
39
45
  ::HTTP::Connection.prepend(Patches::Old::Connection)
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module HTTP
10
- VERSION = '0.28.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-http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.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: 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
@@ -51,11 +50,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
51
50
  licenses:
52
51
  - Apache-2.0
53
52
  metadata:
54
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-http/0.28.0/file/CHANGELOG.md
55
- source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/http
53
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-http/0.30.0/file/CHANGELOG.md
54
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/opentelemetry-instrumentation-http/v0.30.0/instrumentation/http
56
55
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
57
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-http/0.28.0
58
- post_install_message:
56
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-http/0.30.0
59
57
  rdoc_options: []
60
58
  require_paths:
61
59
  - lib
@@ -63,15 +61,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
61
  requirements:
64
62
  - - ">="
65
63
  - !ruby/object:Gem::Version
66
- version: '3.2'
64
+ version: '3.3'
67
65
  required_rubygems_version: !ruby/object:Gem::Requirement
68
66
  requirements:
69
67
  - - ">="
70
68
  - !ruby/object:Gem::Version
71
69
  version: '0'
72
70
  requirements: []
73
- rubygems_version: 3.4.19
74
- signing_key:
71
+ rubygems_version: 4.0.6
75
72
  specification_version: 4
76
73
  summary: HTTP instrumentation for the OpenTelemetry framework
77
74
  test_files: []