opentelemetry-instrumentation-action_pack 0.12.3 → 0.13.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: 4262115e2b8bb06f5aa8dee186cc073fa3998796d2ee0a5107493c752d575eb9
4
- data.tar.gz: 40c809efb6f9a26ce5f2e5c35e9fbca63a0b8ab24ccb9b84217d138f46a42df7
3
+ metadata.gz: a2e35cfc783e7301603c7b5189e07c08e127cb755d1a6f77daa7988a7bb6542d
4
+ data.tar.gz: 3157efc05752b466b84d43972fa18864b40e8e7d9dab289a316d8bd21d602206
5
5
  SHA512:
6
- metadata.gz: '019f275b7a386e8c963a74bba5a97f7eb3ef40fe59986a89c82d2b8564548f886a5cce2ddc9e92870e1081a8835c06a8bdcc1af2de6b0be917a31742e9333c72'
7
- data.tar.gz: 61cdabe47d151ae6ef41d64aa3cb34efd5d9ac8b93a8fa4aed59f41497ca94319f86ddd60a15e6d616476185d686f93da2ba1d181517992fec4f809ddb27c995
6
+ metadata.gz: 9857686cc8650d91d023e212fa85118ab40cc885d823ebd401516ab8db1216cdd47ea3b2e28199dfebb89e54268264dedf5710d9cb5afea1dc0205c41ee3f0a8
7
+ data.tar.gz: 424a3b7dd8d9a4df5aa72f6d89a4c4b4e036c0159964b37b217bd451b55b7652312853cd1244fc24a0c9dfa248befd57064765078b33cb8b45622ae7275c3fb6
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History: opentelemetry-instrumentation-action_pack
2
2
 
3
+ ### v0.13.0 / 2025-08-19
4
+
5
+ * ADDED: Add `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable compatibility for Rack integration [#1594](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/1594)
6
+
3
7
  ### v0.12.3 / 2025-06-16
4
8
 
5
9
  * FIXED: Action_pack always assuming sdk spans
@@ -30,7 +34,7 @@
30
34
 
31
35
  ### v0.9.0 / 2024-01-09
32
36
 
33
- * BREAKING CHANGE: Use ActiveSupport instead of patches #703
37
+ * BREAKING CHANGE: Use ActiveSupport instead of patches #703
34
38
 
35
39
  ### v0.8.0 / 2023-11-22
36
40
 
@@ -45,32 +49,32 @@
45
49
  ### v0.7.0 / 2023-06-05
46
50
 
47
51
  * ADDED: Use Rack Middleware Helper
48
- * FIXED: Base config options
52
+ * FIXED: Base config options
49
53
 
50
54
  ### v0.6.0 / 2023-04-17
51
55
 
52
56
  * BREAKING CHANGE: Drop support for EoL Ruby 2.7
53
57
 
54
- * ADDED: Drop support for EoL Ruby 2.7
58
+ * ADDED: Drop support for EoL Ruby 2.7
55
59
 
56
60
  ### v0.5.0 / 2023-02-01
57
61
 
58
- * BREAKING CHANGE: Drop Rails 5 Support
62
+ * BREAKING CHANGE: Drop Rails 5 Support
59
63
 
60
- * ADDED: Drop Rails 5 Support
61
- * FIXED: Drop Rails dependency for ActiveSupport Instrumentation
64
+ * ADDED: Drop Rails 5 Support
65
+ * FIXED: Drop Rails dependency for ActiveSupport Instrumentation
62
66
 
63
67
  ### v0.4.1 / 2023-01-14
64
68
 
65
69
  * FIXED: String-ify code.function Span attribute
66
- * DOCS: Fix gem homepage
67
- * DOCS: More gem documentation fixes
70
+ * DOCS: Fix gem homepage
71
+ * DOCS: More gem documentation fixes
68
72
 
69
73
  ### v0.4.0 / 2022-12-06
70
74
 
71
- * BREAKING CHANGE: Remove enable_recognize_route and span_naming options
75
+ * BREAKING CHANGE: Remove enable_recognize_route and span_naming options
72
76
 
73
- * FIXED: Remove enable_recognize_route and span_naming options
77
+ * FIXED: Remove enable_recognize_route and span_naming options
74
78
 
75
79
  ### v0.3.2 / 2022-11-16
76
80
 
@@ -82,29 +86,29 @@
82
86
 
83
87
  ### v0.3.0 / 2022-10-14
84
88
 
85
- * ADDED: Name ActionPack spans with the HTTP method and route
89
+ * ADDED: Name ActionPack spans with the HTTP method and route
86
90
 
87
91
  ### v0.2.1 / 2022-10-04
88
92
 
89
- * FIXED: Ensures the correct route is add to http.route span attribute
93
+ * FIXED: Ensures the correct route is add to http.route span attribute
90
94
 
91
95
  ### v0.2.0 / 2022-06-09
92
96
 
93
97
  * Upgrading Base dependency version
94
- * FIXED: Broken test file requirements
98
+ * FIXED: Broken test file requirements
95
99
 
96
100
  ### v0.1.4 / 2022-05-02
97
101
 
98
- * FIXED: Use rails request's filtered path as http.target attribute
99
- * FIXED: RubyGems Fallback
102
+ * FIXED: Use rails request's filtered path as http.target attribute
103
+ * FIXED: RubyGems Fallback
100
104
 
101
105
  ### v0.1.3 / 2021-12-01
102
106
 
103
- * FIXED: Instrumentation of Rails 7
107
+ * FIXED: Instrumentation of Rails 7
104
108
 
105
109
  ### v0.1.2 / 2021-10-06
106
110
 
107
- * FIXED: Prevent high cardinality rack span name as a default
111
+ * FIXED: Prevent high cardinality rack span name as a default
108
112
 
109
113
  ### v0.1.1 / 2021-09-29
110
114
 
data/README.md CHANGED
@@ -89,3 +89,21 @@ The `opentelemetry-instrumentation-action_pack` gem is distributed under the Apa
89
89
  [slack-channel]: https://cloud-native.slack.com/archives/C01NWKKMKMY
90
90
  [discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
91
91
  [rails-home]: https://rubyonrails.org/
92
+
93
+ ## HTTP semantic convention stability
94
+
95
+ In the OpenTelemetry ecosystem, HTTP semantic conventions have now reached a stable state. However, the initial Rack instrumentation, which Action Pack relies on, was introduced before this stability was achieved, which resulted in HTTP attributes being based on an older version of the semantic conventions.
96
+
97
+ 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.
98
+
99
+ Sinatra instrumentation installs Rack middleware, but the middleware version it installs depends on which `OTEL_SEMCONV_STABILITY_OPT_IN` environment variable is set.
100
+
101
+ When setting the value for `OTEL_SEMCONV_STABILITY_OPT_IN`, you can specify which conventions you wish to adopt:
102
+
103
+ - `http` - Emits the stable HTTP and networking conventions and ceases emitting the old conventions previously emitted by the instrumentation.
104
+ - `http/dup` - Emits both the old and stable HTTP and networking conventions, enabling a phased rollout of the stable semantic conventions.
105
+ - Default behavior (in the absence of either value) is to continue emitting the old HTTP and networking conventions the instrumentation previously emitted.
106
+
107
+ 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.
108
+
109
+ For additional information on migration, please refer to our [documentation](https://opentelemetry.io/docs/specs/semconv/non-normative/http-migration/).
@@ -12,9 +12,20 @@ module OpenTelemetry
12
12
  config.before_initialize do |app|
13
13
  OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.install({})
14
14
 
15
+ stability_opt_in = ENV.fetch('OTEL_SEMCONV_STABILITY_OPT_IN', '')
16
+ values = stability_opt_in.split(',').map(&:strip)
17
+
18
+ rack_middleware_args = if values.include?('http/dup')
19
+ OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.middleware_args_dup
20
+ elsif values.include?('http')
21
+ OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.middleware_args_stable
22
+ else
23
+ OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.middleware_args
24
+ end
25
+
15
26
  app.middleware.insert_before(
16
27
  0,
17
- *OpenTelemetry::Instrumentation::Rack::Instrumentation.instance.middleware_args
28
+ *rack_middleware_args
18
29
  )
19
30
  end
20
31
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module ActionPack
10
- VERSION = '0.12.3'
10
+ VERSION = '0.13.0'
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-action_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.3
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-16 00:00:00.000000000 Z
11
+ date: 2025-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -75,10 +75,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
75
75
  licenses:
76
76
  - Apache-2.0
77
77
  metadata:
78
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-action_pack/0.12.3/file/CHANGELOG.md
78
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-action_pack/0.13.0/file/CHANGELOG.md
79
79
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/action_pack
80
80
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
81
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-action_pack/0.12.3
81
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-action_pack/0.13.0
82
82
  post_install_message:
83
83
  rdoc_options: []
84
84
  require_paths: