opentelemetry-instrumentation-rack 0.23.5 → 0.24.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c034c06a57be3531e53405a03d31b451e5ee96b5d01aa1e431f49114f82b84a9
4
- data.tar.gz: 4bdf91f7a3f010d91805fb024d9b4c5393c7c741e11d535daa223a062146518f
3
+ metadata.gz: 7787850f41a9a07243cd9d559c21c96cb78a07bf12dd86931d33c2aea2705505
4
+ data.tar.gz: 5b792735d2e02eba260d3bff2b38a340fded3947b636ec9d745425990d1560f4
5
5
  SHA512:
6
- metadata.gz: d1685546ce8ab8568f591de26bc63d9bb2a843a98218e5541061072394e0f78f9efc100dbf49e52ddd61bd9e048f35a9e7028ef501c106408f236627d6f7b886
7
- data.tar.gz: 4cccff1a775455e9ce5f2339d15cf23553d300f45b3c7d75ec06c2d42b002aca5b942eb8dcdbaf5c2a4d3899fa981add32e83587679af935b55811b691ef1431
6
+ metadata.gz: c99d1b1f48e3b8830c3ed1fa370200266f1adc31d9c2e4e92693eef3abf350112ad18340386757bb9227c60ccf3f8d7f2b1734d8eb03fd1846a91570e0255b1b
7
+ data.tar.gz: 114f33c3a284358343022a578453cc66dacb81ad2652a257c74b178e65a538871f63c59c51e8ed5f1226b600422b35b5c020e0b69874f1f91013de1a7b67224b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Release History: opentelemetry-instrumentation-rack
2
2
 
3
+ ### v0.24.1 / 2024-04-05
4
+
5
+ * DOCS: Fix typo where Rake is mentioned instead of Rack
6
+
7
+ ### v0.24.0 / 2024-01-06
8
+
9
+ * BREAKING CHANGE: Use Rack Events By Default
10
+
11
+ * ADDED: Use Rack Events By Default
12
+ * FIXED: Backport Rack proxy event to middleware
13
+
3
14
  ### v0.23.5 / 2023-11-23
4
15
 
5
16
  * CHANGED: Applied Rubocop Performance Recommendations [#727](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/727)
data/README.md CHANGED
@@ -42,6 +42,23 @@ OpenTelemetry::SDK.configure do |c|
42
42
  c.use_all
43
43
  end
44
44
  ```
45
+
46
+ ## Rack Middleware vs Rack Events
47
+
48
+ Since `v0.24.0`, this instrumentation uses `Rack::Events` as opposed to `Middleware` to support Requests that use Buffered Response Bodies.
49
+
50
+ If your application does not support `Rack::Events`, you may disable it by setting `use_rack_events: false`, e.g.
51
+
52
+ ```ruby
53
+ OpenTelemetry::SDK.configure do |c|
54
+ c.use 'OpenTelemetry::Instrumentation::Rack', use_rack_events: false
55
+ end
56
+ ```
57
+
58
+ This will switch to using `Rack::Middleware` by default in dependent instrumentations.
59
+
60
+ See [#342](https://github.com/open-telemetry/opentelemetry-ruby-contrib/pull/342) for more details.
61
+
45
62
  ## Controlling span name cardinality
46
63
 
47
64
  By default we will set the rack span name to match the format "HTTP #{method}" (ie. HTTP GET). There are different ways to control span names with this instrumentation.
@@ -28,8 +28,8 @@ module OpenTelemetry
28
28
  option :url_quantization, default: nil, validate: :callable
29
29
  option :untraced_requests, default: nil, validate: :callable
30
30
  option :response_propagators, default: [], validate: :array
31
- # This option is only valid for applicaitons using Rack 2.0 or greater
32
- option :use_rack_events, default: false, validate: :boolean
31
+ # This option is only valid for applications using Rack 2.0 or greater
32
+ option :use_rack_events, default: true, validate: :boolean
33
33
 
34
34
  # Temporary Helper for Sinatra and ActionPack middleware to use during installation
35
35
  #
@@ -90,7 +90,7 @@ module OpenTelemetry
90
90
  return unless span.recording?
91
91
 
92
92
  span.record_exception(error)
93
- span.status = OpenTelemetry::Trace::Status.error
93
+ span.status = OpenTelemetry::Trace::Status.error(error.class.name)
94
94
  rescue StandardError => e
95
95
  OpenTelemetry.handle_error(exception: e)
96
96
  end
@@ -192,7 +192,7 @@ module OpenTelemetry
192
192
  end
193
193
 
194
194
  def detach_contexts(request)
195
- request.env[TOKENS_KEY]&.reverse&.each do |token|
195
+ request.env[TOKENS_KEY]&.reverse_each do |token|
196
196
  OpenTelemetry::Context.detach(token)
197
197
  OpenTelemetry::Trace.current_span.finish
198
198
  end
@@ -77,6 +77,8 @@ module OpenTelemetry
77
77
  tracer.in_span(request_span_name,
78
78
  attributes: request_span_attributes(env: env),
79
79
  kind: request_span_kind) do |request_span|
80
+ request_start_time = OpenTelemetry::Instrumentation::Rack::Util::QueueTime.get_request_start(env)
81
+ request_span.add_event('http.proxy.request.started', timestamp: request_start_time) unless request_start_time.nil?
80
82
  OpenTelemetry::Instrumentation::Rack.with_span(request_span) do
81
83
  @app.call(env).tap do |status, headers, response|
82
84
  set_attributes_after_request(request_span, status, headers, response)
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Rack
10
- VERSION = '0.23.5'
10
+ VERSION = '0.24.1'
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-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.5
4
+ version: 0.24.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-23 00:00:00.000000000 Z
11
+ date: 2024-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -198,28 +198,28 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 1.56.1
201
+ version: '1.62'
202
202
  type: :development
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 1.56.1
208
+ version: '1.62'
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rubocop-performance
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 1.19.1
215
+ version: '1.20'
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 1.19.1
222
+ version: '1.20'
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -286,10 +286,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
286
286
  licenses:
287
287
  - Apache-2.0
288
288
  metadata:
289
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.23.5/file/CHANGELOG.md
289
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.24.1/file/CHANGELOG.md
290
290
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/rack
291
291
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
292
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.23.5
292
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-rack/0.24.1
293
293
  post_install_message:
294
294
  rdoc_options: []
295
295
  require_paths: