opentelemetry-instrumentation-net_http 0.20.0 → 0.21.1

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: 75cccfbbc7a3dadc9e99dad68d96e1f7b0822d60873a0c86b758b1cfa7b9d5a2
4
+ data.tar.gz: 5f9ff39ff195cf75fbb708c2d9af936e6b63f24502126877127e1d5864ec720b
5
5
  SHA512:
6
- metadata.gz: 3b42df81a1dec1ffe01bbba2f6e367059764a7e42bca24ba5112fb0fc958213ec1f209a4aa7ee1424136acb0d406fc76d185aa18adeaed38de4094b874118e3a
7
- data.tar.gz: c0434f35899222326bd6c663452ff27a6484a5ea842a6e7b34960851597ba11f6407ae5d8ea0131e5e6011996a5a305e26e8c151ebb911160cdb7c5678515e4d
6
+ metadata.gz: c9ed09d3a4b3ee2009ae7def869a326a0bff2d554b65eac60cea304ee8cc7c55add5209dbf8f0352a2d818e17b1cb3813ea069901c25d4665e4368a855f2bc41
7
+ data.tar.gz: fd47b018541b28af16ae1fa466f5c15413eecf9f6839e0571654bdca27d46310194ed5454e0e8c3efefffbb8eae2216c8f55278a23ec315dc0612dd6762b4b5b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Release History: opentelemetry-instrumentation-net_http
2
2
 
3
+ ### v0.21.1 / 2023-01-14
4
+
5
+ * FIXED: Add untraced check to the Net::HTTP connect instrumentation
6
+ * DOCS: Fix gem homepage
7
+ * DOCS: More gem documentation fixes
8
+
9
+ ### v0.21.0 / 2022-10-04
10
+
11
+ * ADDED: Add Net::HTTP :untraced_hosts option
12
+ * FIXED: Rename HTTP CONNECT for low level connection spans
13
+
3
14
  ### v0.20.0 / 2022-06-09
4
15
 
5
16
  * 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,7 +43,10 @@ module OpenTelemetry
41
43
 
42
44
  private
43
45
 
46
+ # rubocop:disable Metrics/MethodLength
44
47
  def connect
48
+ return super if untraced?
49
+
45
50
  if proxy?
46
51
  conn_address = proxy_address
47
52
  conn_port = proxy_port
@@ -55,10 +60,19 @@ module OpenTelemetry
55
60
  OpenTelemetry::SemanticConventions::Trace::NET_PEER_PORT => conn_port
56
61
  }.merge!(OpenTelemetry::Common::HTTP::ClientContext.attributes)
57
62
 
58
- tracer.in_span('HTTP CONNECT', attributes: attributes) do
63
+ if use_ssl? && proxy?
64
+ span_name = 'HTTP CONNECT'
65
+ span_kind = :client
66
+ else
67
+ span_name = 'connect'
68
+ span_kind = :internal
69
+ end
70
+
71
+ tracer.in_span(span_name, attributes: attributes, kind: span_kind) do
59
72
  super
60
73
  end
61
74
  end
75
+ # rubocop:enable Metrics/MethodLength
62
76
 
63
77
  def annotate_span_with_response!(span, response)
64
78
  return unless response&.code
@@ -72,6 +86,14 @@ module OpenTelemetry
72
86
  def tracer
73
87
  Net::HTTP::Instrumentation.instance.tracer
74
88
  end
89
+
90
+ def untraced?
91
+ return true if Net::HTTP::Instrumentation.instance.config[:untraced_hosts]&.any? do |host|
92
+ host.is_a?(Regexp) ? host.match?(@address) : host == @address
93
+ end
94
+
95
+ false
96
+ end
75
97
  end
76
98
  end
77
99
  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.1'
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.1
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: 2023-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.17'
61
+ version: '2.4'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.17'
68
+ version: '2.4'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: minitest
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 0.73.0
131
+ version: 1.41.1
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.41.1
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-ruby-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://rubydoc.info/gems/opentelemetry-instrumentation-net_http/0.21.1/file/CHANGELOG.md
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://rubydoc.info/gems/opentelemetry-instrumentation-net_http/0.21.1
220
220
  post_install_message:
221
221
  rdoc_options: []
222
222
  require_paths: