opentelemetry-instrumentation-net_http 0.20.0 → 0.21.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: d2442c90d8584836e3e177d4293ee4ea25bf80b9881fdd0b7dba85732c129377
4
- data.tar.gz: 6cb51c3a57942893ec3bf56470ea862973b598efe0a55b27082622f62aebdb65
3
+ metadata.gz: 25308137775787bda9a6fc713d1e398ef167f4143acba4a568fca9296d7ca8f7
4
+ data.tar.gz: 9a8e6b61bbd51e024bd16c30c9b6b74a526f2abb810533714b3ba2d57a2bdf74
5
5
  SHA512:
6
- metadata.gz: 3b42df81a1dec1ffe01bbba2f6e367059764a7e42bca24ba5112fb0fc958213ec1f209a4aa7ee1424136acb0d406fc76d185aa18adeaed38de4094b874118e3a
7
- data.tar.gz: c0434f35899222326bd6c663452ff27a6484a5ea842a6e7b34960851597ba11f6407ae5d8ea0131e5e6011996a5a305e26e8c151ebb911160cdb7c5678515e4d
6
+ metadata.gz: 9efc782cd36d09e4fe1003ea91118c9fdffbcb561b4ae3f6bcf2468c93b52da7514933c5dfd14fe4a5d606d6c1e32ae865babede951765728ebff920c9ce546d
7
+ data.tar.gz: e3bcfb6b9ccea89f55f9feba77e0867bff307edb8b5428f767be64d838c8a905188cd71734e491dfa2e1bef071e75bfaa46d0ae1743af6bb9e8805446ac6e2b4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Release History: opentelemetry-instrumentation-net_http
2
2
 
3
+ ### v0.21.0 / 2022-10-04
4
+
5
+ * ADDED: Add Net::HTTP :untraced_hosts option
6
+ * FIXED: Rename HTTP CONNECT for low level connection spans
7
+
3
8
  ### v0.20.0 / 2022-06-09
4
9
 
5
10
  * Upgrading Base dependency version
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # OpenTelemetry Net::HTTP Instrumentation
2
2
 
3
- The OpenTelemetry Net::HTTP Ruby gem is a community maintained instrumentation for [Net::HTTP][net-http-home].
3
+ The OpenTelemetry Net::HTTP Ruby gem is a community maintained instrumentation for [Net::HTTP][net-http-home].
4
4
 
5
5
  ## How do I get started?
6
6
 
@@ -32,7 +32,7 @@ end
32
32
 
33
33
  ## Example
34
34
 
35
- An example of usage can be seen in [`example/net_http.rb`](https://github.com/open-telemetry/opentelemetry-ruby/blob/main/instrumentation/net_http/example/net_http.rb).
35
+ An example of usage can be seen in [`example/net_http.rb`](https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/instrumentation/net_http/example/net_http.rb).
36
36
 
37
37
  ## How can I get involved?
38
38
 
@@ -47,7 +47,7 @@ Apache 2.0 license. See [LICENSE][license-github] for more information.
47
47
  [net-http-home]: https://docs.ruby-lang.org/en/2.0.0/Net/HTTP.html
48
48
  [bundler-home]: https://bundler.io
49
49
  [repo-github]: https://github.com/open-telemetry/opentelemetry-ruby
50
- [license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
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
53
  [discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
@@ -20,6 +20,14 @@ module OpenTelemetry
20
20
  defined?(::Net::HTTP)
21
21
  end
22
22
 
23
+ ## Supported configuration keys for the install config hash:
24
+ #
25
+ # untraced_hosts: if a request's address matches any of the `String`
26
+ # or `Regexp` in this array, the instrumentation will not record a
27
+ # `kind = :client` representing the request and will not propagate
28
+ # context in the request.
29
+ option :untraced_hosts, default: [], validate: :array
30
+
23
31
  private
24
32
 
25
33
  def require_dependencies
@@ -18,6 +18,8 @@ module OpenTelemetry
18
18
  # Do not trace recursive call for starting the connection
19
19
  return super(req, body, &block) unless started?
20
20
 
21
+ return super(req, body, &block) if untraced?
22
+
21
23
  attributes = {
22
24
  OpenTelemetry::SemanticConventions::Trace::HTTP_METHOD => req.method,
23
25
  OpenTelemetry::SemanticConventions::Trace::HTTP_SCHEME => USE_SSL_TO_SCHEME[use_ssl?],
@@ -41,6 +43,7 @@ module OpenTelemetry
41
43
 
42
44
  private
43
45
 
46
+ # rubocop:disable Metrics/MethodLength
44
47
  def connect
45
48
  if proxy?
46
49
  conn_address = proxy_address
@@ -55,10 +58,19 @@ module OpenTelemetry
55
58
  OpenTelemetry::SemanticConventions::Trace::NET_PEER_PORT => conn_port
56
59
  }.merge!(OpenTelemetry::Common::HTTP::ClientContext.attributes)
57
60
 
58
- tracer.in_span('HTTP CONNECT', attributes: attributes) do
61
+ if use_ssl? && proxy?
62
+ span_name = 'HTTP CONNECT'
63
+ span_kind = :client
64
+ else
65
+ span_name = 'connect'
66
+ span_kind = :internal
67
+ end
68
+
69
+ tracer.in_span(span_name, attributes: attributes, kind: span_kind) do
59
70
  super
60
71
  end
61
72
  end
73
+ # rubocop:enable Metrics/MethodLength
62
74
 
63
75
  def annotate_span_with_response!(span, response)
64
76
  return unless response&.code
@@ -72,6 +84,14 @@ module OpenTelemetry
72
84
  def tracer
73
85
  Net::HTTP::Instrumentation.instance.tracer
74
86
  end
87
+
88
+ def untraced?
89
+ return true if Net::HTTP::Instrumentation.instance.config[:untraced_hosts]&.any? do |host|
90
+ host.is_a?(Regexp) ? host.match?(@address) : host == @address
91
+ end
92
+
93
+ false
94
+ end
75
95
  end
76
96
  end
77
97
  end
@@ -8,7 +8,7 @@ module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Net
10
10
  module HTTP
11
- VERSION = '0.20.0'
11
+ VERSION = '0.21.0'
12
12
  end
13
13
  end
14
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-net_http
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.0
4
+ version: 0.21.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-06-09 00:00:00.000000000 Z
11
+ date: 2022-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.73.0
131
+ version: 1.3.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: 0.73.0
138
+ version: 1.3.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: simplecov
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -209,14 +209,14 @@ files:
209
209
  - lib/opentelemetry/instrumentation/net/http/instrumentation.rb
210
210
  - lib/opentelemetry/instrumentation/net/http/patches/instrumentation.rb
211
211
  - lib/opentelemetry/instrumentation/net/http/version.rb
212
- homepage: https://github.com/open-telemetry/opentelemetry-ruby
212
+ homepage: https://github.com/open-telemetry/opentelemetry-contrib
213
213
  licenses:
214
214
  - Apache-2.0
215
215
  metadata:
216
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-net_http/v0.20.0/file.CHANGELOG.html
217
- source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/net_http
218
- bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
219
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-net_http/v0.20.0
216
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby-contrib/opentelemetry-instrumentation-net_http/v0.21.0/file.CHANGELOG.html
217
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/net_http
218
+ bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
219
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby-contrib/opentelemetry-instrumentation-net_http/v0.21.0
220
220
  post_install_message:
221
221
  rdoc_options: []
222
222
  require_paths: