opentelemetry-instrumentation-ethon 0.14.0 → 0.19.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: 3ccc67bfb598be9e387213b68e07fa82c9be592cce1fe741a4d023de72c7ba77
4
- data.tar.gz: c134dce5e7b9541b808fdb01bf98707a6e2e41b72f785c119868a19b7c0064e6
3
+ metadata.gz: 7d69890b3631dcb3e9d1fd434de81a05a3fcc83ad3bcf370254279c224fb7e09
4
+ data.tar.gz: 387e28351ee89b545cc99289d7cc32f00723f9eeac4b296617b4b07b3df7a71c
5
5
  SHA512:
6
- metadata.gz: 15d6431c0f1188352cb25d797180ca5c37513c60c64f55c2aff7bce77f30f0fc7ad634e80b48b4822abd58e82df7b7a7775b5867a5348bf5cdf341af81401d66
7
- data.tar.gz: 405c3566cdcce7e5eddd54d1818871c2946370b2f9b4bdc245a43663f2999a796e7ba34529e9448f4b2878cc2d3ac75f55fb00287702ea7c8ef17fd1f4900051
6
+ metadata.gz: bcebc00a0726fa963f87be56b7ac3df57dd660cf40368cd4571f790b66ca83abb6a6f26431cac3896085ed2a924247fd54fa41f12fb56addc8300827af7b6804
7
+ data.tar.gz: d9db8f03b1207dbe5b679725f904a2b87073cd0f5a43ca9dc7489e5cc5c9ff79a7db241eec857bd7f3105edce6ffadbebd2834f0b331c92a0a1541093a488f5a
data/CHANGELOG.md CHANGED
@@ -1,10 +1,35 @@
1
1
  # Release History: opentelemetry-instrumentation-ethon
2
2
 
3
+ ### v0.19.0 / 2021-06-23
4
+
5
+ * BREAKING CHANGE: Total order constraint on span.status=
6
+
7
+ * FIXED: Total order constraint on span.status=
8
+
9
+ ### v0.18.0 / 2021-05-21
10
+
11
+ * ADDED: Updated API depedency for 1.0.0.rc1
12
+
13
+ ### v0.17.0 / 2021-04-22
14
+
15
+ * ADDED: Ethon instrumentation accepts peer service config attribute.
16
+ * FIXED: Refactor propagators to add #fields
17
+
18
+ ### v0.16.0 / 2021-03-17
19
+
20
+ * FIXED: Remove passwords from http.url
21
+ * FIXED: Example scripts now reference local common lib
22
+ * DOCS: Replace Gitter with GitHub Discussions
23
+
24
+ ### v0.15.0 / 2021-02-18
25
+
26
+ * (No significant changes)
27
+
3
28
  ### v0.14.0 / 2021-02-03
4
29
 
5
- * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
30
+ * BREAKING CHANGE: Replace getter and setter callables and remove rack specific propagators
6
31
 
7
- * ADDED: Replace getter and setter callables and remove rack specific propagators
32
+ * ADDED: Replace getter and setter callables and remove rack specific propagators
8
33
 
9
34
  ### v0.13.0 / 2021-01-29
10
35
 
@@ -16,7 +41,7 @@
16
41
 
17
42
  ### v0.11.0 / 2020-12-11
18
43
 
19
- * FIXED: Copyright comments to not reference year
44
+ * FIXED: Copyright comments to not reference year
20
45
 
21
46
  ### v0.10.0 / 2020-12-03
22
47
 
@@ -24,22 +49,22 @@
24
49
 
25
50
  ### v0.9.0 / 2020-11-27
26
51
 
27
- * BREAKING CHANGE: Add timeout for force_flush and shutdown
52
+ * BREAKING CHANGE: Add timeout for force_flush and shutdown
28
53
 
29
- * ADDED: Add timeout for force_flush and shutdown
54
+ * ADDED: Add timeout for force_flush and shutdown
30
55
 
31
56
  ### v0.8.0 / 2020-10-27
32
57
 
33
- * BREAKING CHANGE: Move context/span methods to Trace module
34
- * BREAKING CHANGE: Remove 'canonical' from status codes
58
+ * BREAKING CHANGE: Move context/span methods to Trace module
59
+ * BREAKING CHANGE: Remove 'canonical' from status codes
35
60
 
36
- * FIXED: Move context/span methods to Trace module
37
- * FIXED: Remove 'canonical' from status codes
61
+ * FIXED: Move context/span methods to Trace module
62
+ * FIXED: Remove 'canonical' from status codes
38
63
 
39
64
  ### v0.7.0 / 2020-10-07
40
65
 
41
- * DOCS: Add README for Ethon
42
- * DOCS: Standardize toplevel docs structure and readme
66
+ * DOCS: Add README for Ethon
67
+ * DOCS: Standardize toplevel docs structure and readme
43
68
 
44
69
  ### v0.6.0 / 2020-09-10
45
70
 
data/README.md CHANGED
@@ -38,7 +38,7 @@ Example usage of faraday can be seen in the `./example/ethon.rb` file [here](htt
38
38
 
39
39
  The `opentelemetry-instrumentation-ethon` 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 on our [gitter channel][ruby-gitter] 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 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].
42
42
 
43
43
  ## License
44
44
 
@@ -51,4 +51,4 @@ The `opentelemetry-instrumentation-all` gem is distributed under the Apache 2.0
51
51
  [license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
52
52
  [ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
53
53
  [community-meetings]: https://github.com/open-telemetry/community#community-meetings
54
- [ruby-gitter]: https://gitter.im/open-telemetry/opentelemetry-ruby
54
+ [discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
@@ -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' => 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.14.0'
10
+ VERSION = '0.19.0'
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.14.0
4
+ version: 0.19.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: 2021-02-03 00:00:00.000000000 Z
11
+ date: 2021-06-24 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.14.0
19
+ version: 1.0.0.rc2
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.14.0
26
+ version: 1.0.0.rc2
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.0
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.0
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.1
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.1
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.14.0/file.CHANGELOG.html
203
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ethon/v0.19.0/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.14.0
206
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-ethon/v0.19.0
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