opentelemetry-instrumentation-faraday 0.24.6 → 0.24.8

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: 8abde7df8501a1f21e16f2cba2fa493f8200477ace289eeceabfd280b3b0dde1
4
- data.tar.gz: 33a53279feb96b8162379ef02c710b625613d76570ff4956123ccb030a5b04b9
3
+ metadata.gz: 6d77c32dd025abec6065c2178b3bb4f5b8b1e30f8346c144c90a69f842fe0e94
4
+ data.tar.gz: d2b7de74cb08ba24ea51979f8766b357255ce9154d71cb9fcf4cbc28d074bd06
5
5
  SHA512:
6
- metadata.gz: 9ea0bfc1c57c39c9605eca52da89127f4d71a7c4ea5a85a358bb3857102cf3da1cecec1c4e38c2a3ae4033694a2196e5dbb2be1fca17468c0b7f045d091d66d0
7
- data.tar.gz: a687d98b26bf0cabb5520c4015b3c6742984b0564bedde8c8476d5426aaa27e91e81329d0f31153bc71074d5357cc20d83728e09ed39a03d91adf704565a5be6
6
+ metadata.gz: affd8957e6074906a6471b0341d66e5f0df2e7b646994ed4940939270509a41cc1287faa0171d0c00b95aa0c3908c574ce9d28b27ab16c124458d3ff78c037e2
7
+ data.tar.gz: d3cfa506f11913c13bc71ca202f124821399ac2066993d69b06a052a176a8475ac708f968449e4b42dfe59a7679f5796f68c752f268a7d9b33d99dca28f3c700
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Release History: opentelemetry-instrumentation-faraday
2
2
 
3
+ ### v0.24.8 / 2024-12-17
4
+
5
+ * FIXED: Share Faraday Attrs with Adapter Spans
6
+
7
+ ### v0.24.7 / 2024-11-26
8
+
9
+ * CHANGED: Performance Freeze all range objects #1222
10
+
3
11
  ### v0.24.6 / 2024-07-23
4
12
 
5
13
  * DOCS: Add cspell to CI
data/README.md CHANGED
@@ -6,7 +6,7 @@ The OpenTelemetry Faraday Ruby gem is a community maintained instrumentation for
6
6
 
7
7
  Install the gem using:
8
8
 
9
- ```
9
+ ```console
10
10
  gem install opentelemetry-instrumentation-faraday
11
11
  ```
12
12
 
@@ -38,7 +38,7 @@ Example usage of faraday can be seen in the `./example/faraday.rb` file [here](h
38
38
 
39
39
  The `opentelemetry-instrumentation-faraday` gem source is [on github][repo-github], along with related gems including `opentelemetry-api` and `opentelemetry-sdk`.
40
40
 
41
- The OpenTelemetry Ruby gems are maintained by the OpenTelemetry-Ruby special interest group (SIG). You can get involved by joining us in [GitHub Discussions][discussions-url] or attending our weekly meeting. See the [meeting calendar][community-meetings] for dates and times. For more information on this and other language SIGs, see the OpenTelemetry [community page][ruby-sig].
41
+ The OpenTelemetry Ruby gems are maintained by the OpenTelemetry Ruby special interest group (SIG). You can get involved by joining us on our [GitHub Discussions][discussions-url], [Slack Channel][slack-channel] or attending our weekly meeting. See the [meeting calendar][community-meetings] for dates and times. For more information on this and other language SIGs, see the OpenTelemetry [community page][ruby-sig].
42
42
 
43
43
  ## License
44
44
 
@@ -50,4 +50,5 @@ Apache 2.0 license. See [LICENSE][license-github] for more information.
50
50
  [license-github]: https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/LICENSE
51
51
  [ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
52
52
  [community-meetings]: https://github.com/open-telemetry/community#community-meetings
53
+ [slack-channel]: https://cloud-native.slack.com/archives/C01NWKKMKMY
53
54
  [discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
@@ -9,7 +9,7 @@ module OpenTelemetry
9
9
  module Faraday
10
10
  module Middlewares
11
11
  # TracerMiddleware propagates context and instruments Faraday requests
12
- # by way of its middlware system
12
+ # by way of its middleware system
13
13
  class TracerMiddleware < ::Faraday::Middleware
14
14
  HTTP_METHODS_SYMBOL_TO_STRING = {
15
15
  connect: 'CONNECT',
@@ -23,6 +23,9 @@ module OpenTelemetry
23
23
  trace: 'TRACE'
24
24
  }.freeze
25
25
 
26
+ # Constant for the HTTP status range
27
+ HTTP_STATUS_SUCCESS_RANGE = (100..399)
28
+
26
29
  def call(env)
27
30
  http_method = HTTP_METHODS_SYMBOL_TO_STRING[env.method]
28
31
  config = Faraday::Instrumentation.instance.config
@@ -30,31 +33,34 @@ module OpenTelemetry
30
33
  attributes = span_creation_attributes(
31
34
  http_method: http_method, url: env.url, config: config
32
35
  )
33
- tracer.in_span(
34
- "HTTP #{http_method}", attributes: attributes, kind: config.fetch(:span_kind)
35
- ) do |span|
36
- OpenTelemetry.propagation.inject(env.request_headers)
37
36
 
38
- app.call(env).on_complete { |resp| trace_response(span, resp.status) }
39
- rescue ::Faraday::Error => e
40
- trace_response(span, e.response[:status]) if e.response
37
+ OpenTelemetry::Common::HTTP::ClientContext.with_attributes(attributes) do |attrs, _|
38
+ tracer.in_span(
39
+ "HTTP #{http_method}", attributes: attrs, kind: config.fetch(:span_kind)
40
+ ) do |span|
41
+ OpenTelemetry.propagation.inject(env.request_headers)
42
+
43
+ app.call(env).on_complete { |resp| trace_response(span, resp.status) }
44
+ rescue ::Faraday::Error => e
45
+ trace_response(span, e.response[:status]) if e.response
41
46
 
42
- raise
47
+ raise
48
+ end
43
49
  end
44
50
  end
45
51
 
46
52
  private
47
53
 
48
54
  def span_creation_attributes(http_method:, url:, config:)
49
- instrumentation_attrs = {
55
+ attrs = {
50
56
  'http.method' => http_method,
51
57
  'http.url' => OpenTelemetry::Common::Utilities.cleanse_url(url.to_s),
52
58
  'faraday.adapter.name' => app.class.name
53
59
  }
54
- instrumentation_attrs['net.peer.name'] = url.host if url.host
55
- instrumentation_attrs['peer.service'] = config[:peer_service] if config[:peer_service]
60
+ attrs['net.peer.name'] = url.host if url.host
61
+ attrs['peer.service'] = config[:peer_service] if config[:peer_service]
56
62
 
57
- instrumentation_attrs.merge!(
63
+ attrs.merge!(
58
64
  OpenTelemetry::Common::HTTP::ClientContext.attributes
59
65
  )
60
66
  end
@@ -68,7 +74,7 @@ module OpenTelemetry
68
74
 
69
75
  def trace_response(span, status)
70
76
  span.set_attribute('http.status_code', status)
71
- span.status = OpenTelemetry::Trace::Status.error unless (100..399).cover?(status.to_i)
77
+ span.status = OpenTelemetry::Trace::Status.error unless HTTP_STATUS_SUCCESS_RANGE.cover?(status.to_i)
72
78
  end
73
79
  end
74
80
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Faraday
10
- VERSION = '0.24.6'
10
+ VERSION = '0.24.8'
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-faraday
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.6
4
+ version: 0.24.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-24 00:00:00.000000000 Z
11
+ date: 2024-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -114,28 +114,28 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 1.65.0
117
+ version: 1.69.1
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 1.65.0
124
+ version: 1.69.1
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rubocop-performance
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: '1.20'
131
+ version: 1.23.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: '1.20'
138
+ version: 1.23.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -156,14 +156,14 @@ dependencies:
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: '3.19'
159
+ version: 3.24.0
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: '3.19'
166
+ version: 3.24.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: yard
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -201,11 +201,11 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
201
201
  licenses:
202
202
  - Apache-2.0
203
203
  metadata:
204
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-faraday/0.24.6/file/CHANGELOG.md
204
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-faraday/0.24.8/file/CHANGELOG.md
205
205
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/faraday
206
206
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
207
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-faraday/0.24.6
208
- post_install_message:
207
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-faraday/0.24.8
208
+ post_install_message:
209
209
  rdoc_options: []
210
210
  require_paths:
211
211
  - lib
@@ -221,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
221
  version: '0'
222
222
  requirements: []
223
223
  rubygems_version: 3.2.33
224
- signing_key:
224
+ signing_key:
225
225
  specification_version: 4
226
226
  summary: Faraday instrumentation for the OpenTelemetry framework
227
227
  test_files: []