opentelemetry-instrumentation-rack 0.23.5 → 0.24.0

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: d11de07129115be6b9af9347c3893327ea18c58b959fe761c86f1eabc94402eb
4
+ data.tar.gz: 27cf79e4ab1bdd60c76a90824da839948deab41ee9d9cc8eb5b4d151cb1abc2e
5
5
  SHA512:
6
- metadata.gz: d1685546ce8ab8568f591de26bc63d9bb2a843a98218e5541061072394e0f78f9efc100dbf49e52ddd61bd9e048f35a9e7028ef501c106408f236627d6f7b886
7
- data.tar.gz: 4cccff1a775455e9ce5f2339d15cf23553d300f45b3c7d75ec06c2d42b002aca5b942eb8dcdbaf5c2a4d3899fa981add32e83587679af935b55811b691ef1431
6
+ metadata.gz: 3c6330ea8a52a55c20e7b62cb6864c784993b7b3a8209ad41812904992d003e8c38d6f9c62096d3cf25c343fea0abf722c5cf978ccc2a826cefbbb4fabd208a5
7
+ data.tar.gz: 87f30078bd1ee4a8c595048754210ecf82d65f7a2d2eb3738f82138a3631faa3dc8108de9beb0ae8840a1fbf7f546fd112a8c03b435bef078315f79e0d6a82f2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Release History: opentelemetry-instrumentation-rack
2
2
 
3
+ ### v0.24.0 / 2024-01-06
4
+
5
+ * BREAKING CHANGE: Use Rack Events By Default
6
+
7
+ * ADDED: Use Rack Events By Default
8
+ * FIXED: Backport Rack proxy event to middleware
9
+
3
10
  ### v0.23.5 / 2023-11-23
4
11
 
5
12
  * 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 `Rake::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
@@ -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.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-rack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.23.5
4
+ version: 0.24.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: 2023-11-23 00:00:00.000000000 Z
11
+ date: 2024-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -198,14 +198,14 @@ dependencies:
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 1.56.1
201
+ version: 1.59.0
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.59.0
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: rubocop-performance
211
211
  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.0/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.0
293
293
  post_install_message:
294
294
  rdoc_options: []
295
295
  require_paths: