opentelemetry-instrumentation-ethon 0.16.0 → 0.19.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: 0ef4d91eae60d932830d11bfb4736f0f336e0b902eeb6b8b3f86a41476ece6d6
4
- data.tar.gz: b5f29b67425ef88844c11318f153c1bdae746e46ccdbdcb8ae7ecf4ba53722e1
3
+ metadata.gz: e897ff6d8ab67ffc0a3b5358a423852e530688aba817ee7a278c224b5a02d000
4
+ data.tar.gz: 680037e886da6a472cef4a7057b65cce9d11d30750ac27b80a0ccea40a25a709
5
5
  SHA512:
6
- metadata.gz: 700bf3fafce4ee6b3502ea766c91c75ff0d1acfe229b9446c22f3afb8b9ba0dd0778199f247d01de6f49414cda26c51ed7e894d21a5be1a915b8b348ec048e2a
7
- data.tar.gz: fd15218a991ca059f37bc754c693e7843eeba4e9ad0c4966e72c9541fbc4fd15418b90e0e7a0d0af82fe8d2ec17b77f7264bd01bc7315e82a4e3201f03efdb25
6
+ metadata.gz: fcc8916198cd6dfca75b6e41919a9ea072e155e7eaffdfbeff4f1c74b4a7f8c15b0cc6355a1b9a868303ba66520eb7d629a6685e9d3502d39c5c20bcbd50813e
7
+ data.tar.gz: e2307563cba4f0a7e232a6f663292abd1eb83b16fe674571def28dbc9a1cf9cd39727470b2c3b27db445b30e35ca2b551456764103599bdf890f1cd24ebca531
data/CHANGELOG.md CHANGED
@@ -1,10 +1,29 @@
1
1
  # Release History: opentelemetry-instrumentation-ethon
2
2
 
3
+ ### v0.19.1 / 2021-08-12
4
+
5
+ * DOCS: Update docs to rely more on environment variable configuration
6
+
7
+ ### v0.19.0 / 2021-06-23
8
+
9
+ * BREAKING CHANGE: Total order constraint on span.status=
10
+
11
+ * FIXED: Total order constraint on span.status=
12
+
13
+ ### v0.18.0 / 2021-05-21
14
+
15
+ * ADDED: Updated API depedency for 1.0.0.rc1
16
+
17
+ ### v0.17.0 / 2021-04-22
18
+
19
+ * ADDED: Ethon instrumentation accepts peer service config attribute.
20
+ * FIXED: Refactor propagators to add #fields
21
+
3
22
  ### v0.16.0 / 2021-03-17
4
23
 
5
- * FIXED: Remove passwords from http.url
6
- * FIXED: Example scripts now reference local common lib
7
- * DOCS: Replace Gitter with GitHub Discussions
24
+ * FIXED: Remove passwords from http.url
25
+ * FIXED: Example scripts now reference local common lib
26
+ * DOCS: Replace Gitter with GitHub Discussions
8
27
 
9
28
  ### v0.15.0 / 2021-02-18
10
29
 
@@ -12,9 +31,9 @@
12
31
 
13
32
  ### v0.14.0 / 2021-02-03
14
33
 
15
- * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
34
+ * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
16
35
 
17
- * ADDED: Replace getter and setter callables and remove rack specific propagators
36
+ * ADDED: Replace getter and setter callables and remove rack specific propagators
18
37
 
19
38
  ### v0.13.0 / 2021-01-29
20
39
 
@@ -26,7 +45,7 @@
26
45
 
27
46
  ### v0.11.0 / 2020-12-11
28
47
 
29
- * FIXED: Copyright comments to not reference year
48
+ * FIXED: Copyright comments to not reference year
30
49
 
31
50
  ### v0.10.0 / 2020-12-03
32
51
 
@@ -34,22 +53,22 @@
34
53
 
35
54
  ### v0.9.0 / 2020-11-27
36
55
 
37
- * BREAKING CHANGE: Add timeout for force_flush and shutdown
56
+ * BREAKING CHANGE: Add timeout for force_flush and shutdown
38
57
 
39
- * ADDED: Add timeout for force_flush and shutdown
58
+ * ADDED: Add timeout for force_flush and shutdown
40
59
 
41
60
  ### v0.8.0 / 2020-10-27
42
61
 
43
- * BREAKING CHANGE: Move context/span methods to Trace module
44
- * BREAKING CHANGE: Remove 'canonical' from status codes
62
+ * BREAKING CHANGE: Move context/span methods to Trace module
63
+ * BREAKING CHANGE: Remove 'canonical' from status codes
45
64
 
46
- * FIXED: Move context/span methods to Trace module
47
- * FIXED: Remove 'canonical' from status codes
65
+ * FIXED: Move context/span methods to Trace module
66
+ * FIXED: Remove 'canonical' from status codes
48
67
 
49
68
  ### v0.7.0 / 2020-10-07
50
69
 
51
- * DOCS: Add README for Ethon
52
- * DOCS: Standardize toplevel docs structure and readme
70
+ * DOCS: Add README for Ethon
71
+ * DOCS: Standardize toplevel docs structure and readme
53
72
 
54
73
  ### v0.6.0 / 2020-09-10
55
74
 
@@ -5,6 +5,7 @@
5
5
  # SPDX-License-Identifier: Apache-2.0
6
6
 
7
7
  require 'opentelemetry'
8
+ require 'opentelemetry-instrumentation-base'
8
9
 
9
10
  module OpenTelemetry
10
11
  module Instrumentation
@@ -19,6 +19,8 @@ module OpenTelemetry
19
19
  defined?(::Ethon::Easy)
20
20
  end
21
21
 
22
+ option :peer_service, default: nil, validate: :string
23
+
22
24
  private
23
25
 
24
26
  def require_dependencies
@@ -32,22 +32,17 @@ module OpenTelemetry
32
32
  super
33
33
  end
34
34
 
35
- def complete # rubocop:disable Metrics/MethodLength
35
+ def complete
36
36
  begin
37
37
  response_options = mirror.options
38
38
  response_code = (response_options[:response_code] || response_options[:code]).to_i
39
39
  if response_code.zero?
40
40
  return_code = response_options[:return_code]
41
41
  message = return_code ? ::Ethon::Curl.easy_strerror(return_code) : 'unknown reason'
42
- @otel_span.status = OpenTelemetry::Trace::Status.new(
43
- OpenTelemetry::Trace::Status::ERROR,
44
- description: "Request has failed: #{message}"
45
- )
42
+ @otel_span.status = OpenTelemetry::Trace::Status.error("Request has failed: #{message}")
46
43
  else
47
44
  @otel_span.set_attribute('http.status_code', response_code)
48
- @otel_span.status = OpenTelemetry::Trace::Status.http_to_status(
49
- response_code
50
- )
45
+ @otel_span.status = OpenTelemetry::Trace::Status.error unless (100..399).include?(response_code.to_i)
51
46
  end
52
47
  ensure
53
48
  @otel_span.finish
@@ -70,10 +65,7 @@ module OpenTelemetry
70
65
 
71
66
  @otel_span = tracer.start_span(
72
67
  HTTP_METHODS_TO_SPAN_NAMES[method],
73
- attributes: {
74
- 'http.method' => method,
75
- 'http.url' => OpenTelemetry::Common::Utilities.cleanse_url(url)
76
- },
68
+ attributes: span_creation_attributes(method),
77
69
  kind: :client
78
70
  )
79
71
 
@@ -90,6 +82,18 @@ module OpenTelemetry
90
82
 
91
83
  private
92
84
 
85
+ def span_creation_attributes(method)
86
+ instrumentation_attrs = {
87
+ 'http.method' => method,
88
+ 'http.url' => OpenTelemetry::Common::Utilities.cleanse_url(url)
89
+ }
90
+ config = Ethon::Instrumentation.instance.config
91
+ instrumentation_attrs['peer.service'] = config[:peer_service] if config[:peer_service]
92
+ instrumentation_attrs.merge(
93
+ OpenTelemetry::Common::HTTP::ClientContext.attributes
94
+ )
95
+ end
96
+
93
97
  def tracer
94
98
  Ethon::Instrumentation.instance.tracer
95
99
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module Ethon
10
- VERSION = '0.16.0'
10
+ VERSION = '0.19.1'
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-ethon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.19.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: 2021-03-22 00:00:00.000000000 Z
11
+ date: 2021-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -16,14 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.16.0
19
+ version: 1.0.0.rc3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.16.0
26
+ version: 1.0.0.rc3
27
+ - !ruby/object:Gem::Dependency
28
+ name: opentelemetry-common
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.19.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.19.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: opentelemetry-instrumentation-base
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 0.18.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 0.18.2
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: appraisal
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +114,14 @@ dependencies:
86
114
  requirements:
87
115
  - - "~>"
88
116
  - !ruby/object:Gem::Version
89
- version: '0.0'
117
+ version: 1.0.0.rc1
90
118
  type: :development
91
119
  prerelease: false
92
120
  version_requirements: !ruby/object:Gem::Requirement
93
121
  requirements:
94
122
  - - "~>"
95
123
  - !ruby/object:Gem::Version
96
- version: '0.0'
124
+ version: 1.0.0.rc1
97
125
  - !ruby/object:Gem::Dependency
98
126
  name: rubocop
99
127
  requirement: !ruby/object:Gem::Requirement
@@ -172,10 +200,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
172
200
  licenses:
173
201
  - Apache-2.0
174
202
  metadata:
175
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ethon/v0.16.0/file.CHANGELOG.html
203
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ethon/v0.19.1/file.CHANGELOG.html
176
204
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/ethon
177
205
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
178
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ethon/v0.16.0
206
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ethon/v0.19.1
179
207
  post_install_message:
180
208
  rdoc_options: []
181
209
  require_paths:
@@ -191,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
219
  - !ruby/object:Gem::Version
192
220
  version: '0'
193
221
  requirements: []
194
- rubygems_version: 3.1.4
222
+ rubygems_version: 3.1.6
195
223
  signing_key:
196
224
  specification_version: 4
197
225
  summary: Ethon instrumentation for the OpenTelemetry framework