opentelemetry-instrumentation-net_http 0.20.0 → 0.21.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: 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: