opentelemetry-instrumentation-rack 0.21.0 → 0.22.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 +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +3 -3
- data/lib/opentelemetry/instrumentation/rack/instrumentation.rb +1 -0
- data/lib/opentelemetry/instrumentation/rack/middlewares/tracer_middleware.rb +6 -5
- data/lib/opentelemetry/instrumentation/rack/util/queue_time.rb +1 -1
- data/lib/opentelemetry/instrumentation/rack/version.rb +1 -1
- metadata +23 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adec146f5413f600be2f53c5a8ae9d2dd9388611c253886d60b0c2831546d711
|
4
|
+
data.tar.gz: 180d5b75cc9895b3d4aa9c01cf8c12d4e545c60fa477384a13350a8d4c93a6c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c738d928bbf2ae2cfce23cb1235958817e7c5923ab8d45a8454679f300b835ee64e3e4c21026b35edfa258bb4ca8073ea77328df0195fca40fd68617ffc7e738
|
7
|
+
data.tar.gz: 2bbbe8be64060776b3afa9ea2d6ef675ccf7c0b74e3f44a52501d5346a2f460b36c2c8d63c0314448321057d075d864669d88bcffd986a4ba28ece3250f59ea7
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Release History: opentelemetry-instrumentation-rack
|
2
2
|
|
3
|
+
### v0.22.0 / 2022-11-16
|
4
|
+
|
5
|
+
* ADDED: Add experimental traceresponse propagator to Rack instrumentation
|
6
|
+
|
7
|
+
### v0.21.1 / 2022-10-04
|
8
|
+
|
9
|
+
* FIXED: Bring http.request.header and http.response.header in line with semconv
|
10
|
+
|
3
11
|
### v0.21.0 / 2022-06-09
|
4
12
|
|
5
13
|
* Upgrading Base dependency version
|
data/README.md
CHANGED
@@ -37,7 +37,7 @@ By default we will set the rack span name to match the format "HTTP #{method}" (
|
|
37
37
|
|
38
38
|
We surface a hook to easily retrieve the rack span within the context of a request so that you can add information to or rename your server span.
|
39
39
|
|
40
|
-
This is how the rails controller instrumentation is able to rename the span names to match the controller and action that process the request. See https://github.com/open-telemetry/opentelemetry-ruby/blob/
|
40
|
+
This is how the rails controller instrumentation is able to rename the span names to match the controller and action that process the request. See https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/action_pack/lib/opentelemetry/instrumentation/action_pack/patches/action_controller/metal.rb#L15-L16 for an example.
|
41
41
|
|
42
42
|
### High cardinality example
|
43
43
|
|
@@ -51,7 +51,7 @@ end
|
|
51
51
|
|
52
52
|
## Examples
|
53
53
|
|
54
|
-
Example usage can be seen in the `./example/trace_demonstration.rb` file [here](https://github.com/open-telemetry/opentelemetry-ruby/blob/main/instrumentation/rack/example/trace_demonstration.rb)
|
54
|
+
Example usage can be seen in the `./example/trace_demonstration.rb` file [here](https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/rack/example/trace_demonstration.rb)
|
55
55
|
|
56
56
|
## How can I get involved?
|
57
57
|
|
@@ -66,7 +66,7 @@ The `opentelemetry-instrumentation-rack` gem is distributed under the Apache 2.0
|
|
66
66
|
[rack-home]: https://github.com/rack/rack
|
67
67
|
[bundler-home]: https://bundler.io
|
68
68
|
[repo-github]: https://github.com/open-telemetry/opentelemetry-ruby
|
69
|
-
[license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
|
69
|
+
[license-github]: https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/LICENSE
|
70
70
|
[ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
|
71
71
|
[community-meetings]: https://github.com/open-telemetry/community#community-meetings
|
72
72
|
[discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
|
@@ -30,6 +30,7 @@ module OpenTelemetry
|
|
30
30
|
option :untraced_endpoints, default: [], validate: :array
|
31
31
|
option :url_quantization, default: nil, validate: :callable
|
32
32
|
option :untraced_requests, default: nil, validate: :callable
|
33
|
+
option :response_propagators, default: [], validate: :array
|
33
34
|
|
34
35
|
private
|
35
36
|
|
@@ -21,17 +21,17 @@ module OpenTelemetry
|
|
21
21
|
key = header.to_s.upcase.gsub(/[-\s]/, '_')
|
22
22
|
case key
|
23
23
|
when 'CONTENT_TYPE', 'CONTENT_LENGTH'
|
24
|
-
memo[key] = build_attribute_name('http.request.
|
24
|
+
memo[key] = build_attribute_name('http.request.header.', header)
|
25
25
|
else
|
26
|
-
memo["HTTP_#{key}"] = build_attribute_name('http.request.
|
26
|
+
memo["HTTP_#{key}"] = build_attribute_name('http.request.header.', header)
|
27
27
|
end
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
31
|
def allowed_response_headers
|
32
32
|
@allowed_response_headers ||= Array(config[:allowed_response_headers]).each_with_object({}) do |header, memo|
|
33
|
-
memo[header] = build_attribute_name('http.response.
|
34
|
-
memo[header.to_s.upcase] = build_attribute_name('http.response.
|
33
|
+
memo[header] = build_attribute_name('http.response.header.', header)
|
34
|
+
memo[header.to_s.upcase] = build_attribute_name('http.response.header.', header)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
@@ -58,7 +58,7 @@ module OpenTelemetry
|
|
58
58
|
@untraced_endpoints = config[:untraced_endpoints]
|
59
59
|
end
|
60
60
|
|
61
|
-
def call(env) # rubocop:disable Metrics/
|
61
|
+
def call(env) # rubocop:disable Metrics/MethodLength
|
62
62
|
if untraced_request?(env)
|
63
63
|
OpenTelemetry::Common::Utilities.untraced do
|
64
64
|
return @app.call(env)
|
@@ -82,6 +82,7 @@ module OpenTelemetry
|
|
82
82
|
OpenTelemetry::Instrumentation::Rack.with_span(request_span) do
|
83
83
|
@app.call(env).tap do |status, headers, response|
|
84
84
|
set_attributes_after_request(request_span, status, headers, response)
|
85
|
+
config[:response_propagators].each { |propagator| propagator.inject(headers) }
|
85
86
|
end
|
86
87
|
end
|
87
88
|
end
|
@@ -16,7 +16,7 @@ module OpenTelemetry
|
|
16
16
|
|
17
17
|
module_function
|
18
18
|
|
19
|
-
def get_request_start(env, now = nil) # rubocop:disable Metrics/
|
19
|
+
def get_request_start(env, now = nil) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
20
20
|
header = env[REQUEST_START] || env[QUEUE_START]
|
21
21
|
return unless header
|
22
22
|
|
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.
|
4
|
+
version: 0.22.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: 2022-
|
11
|
+
date: 2022-11-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: opentelemetry-api
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.1'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: opentelemetry-sdk-experimental
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.1'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.1'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: opentelemetry-test-helpers
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +184,14 @@ dependencies:
|
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
187
|
+
version: 1.3.0
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
194
|
+
version: 1.3.0
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: simplecov
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -252,14 +266,14 @@ files:
|
|
252
266
|
- lib/opentelemetry/instrumentation/rack/middlewares/tracer_middleware.rb
|
253
267
|
- lib/opentelemetry/instrumentation/rack/util/queue_time.rb
|
254
268
|
- lib/opentelemetry/instrumentation/rack/version.rb
|
255
|
-
homepage: https://github.com/open-telemetry/opentelemetry-
|
269
|
+
homepage: https://github.com/open-telemetry/opentelemetry-contrib
|
256
270
|
licenses:
|
257
271
|
- Apache-2.0
|
258
272
|
metadata:
|
259
|
-
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-rack/v0.
|
260
|
-
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/rack
|
261
|
-
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
|
262
|
-
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-rack/v0.
|
273
|
+
changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby-contrib/opentelemetry-instrumentation-rack/v0.22.0/file.CHANGELOG.html
|
274
|
+
source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/rack
|
275
|
+
bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
|
276
|
+
documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby-contrib/opentelemetry-instrumentation-rack/v0.22.0
|
263
277
|
post_install_message:
|
264
278
|
rdoc_options: []
|
265
279
|
require_paths:
|