opentelemetry-instrumentation-base 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: 36880f3027db5ce9434787fc96f373497e7e4a0986bba01db8936abd6a6c6f60
4
- data.tar.gz: 2b6e9ef13f8ccad67f9c3d1138343192b4ea9df5fc0393acea2351b3bc498cf4
3
+ metadata.gz: 99e6450e5fe0a34262181644384ac289093fb11dc924dcdb44be21e46715cddb
4
+ data.tar.gz: 91dcb93efdcabe5db3619fe0fb962f0512373759aafb34bcabee9ea31f1092c1
5
5
  SHA512:
6
- metadata.gz: 90af953fd300ccbf1dbde0381999279d3773d79a02297b97ad5148eb070ea6fab7cbcaf38b82f6f2f3b60e4256b49302f0f844e77cfecfcd7d9d4b11b05fe095
7
- data.tar.gz: e58a221f4f846955c7d122b15766b2afba00007343ae54e8fa890346ad3d3ff56c08bdb9d297084ba0c84da6cd9152dba27b09e74850811737143181cd47c24f
6
+ metadata.gz: e4da44cb456ec692d62577aee339c9bcf3b1cd57aa49d5e6a8e96b0a6ab2da1f8b3b367a10f8593751b1caa4c163c257d9760b8842d94bc66839816828456c2c
7
+ data.tar.gz: 54de81f111d50c53305054975bd43e6dbb8bebe3386eed876dc7a36ed4f42ef5416c5668f25962b1427a911fbdcde7ea1c87892f5fcc9fdb9407f83c4e392a65
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Release History: opentelemetry-instrumentation-base
2
2
 
3
+ ### v0.21.0 / 2022-05-26
4
+
5
+ * BREAKING CHANGE: This requires upgrading both the SDK and Instrumentation gem in tandem
6
+
7
+
3
8
  ### v0.20.0 / 2022-05-02
4
9
 
5
10
  * ADDED: Validate Using Enums
@@ -6,6 +6,6 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
- VERSION = '0.20.0'
9
+ VERSION = '0.21.0'
10
10
  end
11
11
  end
@@ -5,19 +5,12 @@
5
5
  # SPDX-License-Identifier: Apache-2.0
6
6
 
7
7
  require 'opentelemetry'
8
- require 'opentelemetry/instrumentation/registry'
8
+ require 'opentelemetry-registry'
9
9
  require 'opentelemetry/instrumentation/base'
10
10
 
11
11
  module OpenTelemetry
12
12
  # The instrumentation module contains functionality to register and install
13
13
  # instrumentation
14
14
  module Instrumentation
15
- extend self
16
-
17
- # @return [Registry] registry containing all known
18
- # instrumentation
19
- def registry
20
- @registry ||= Registry.new
21
- end
22
15
  end
23
16
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-base
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-05-02 00:00:00.000000000 Z
11
+ date: 2022-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: opentelemetry-registry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.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.1'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -150,16 +164,15 @@ files:
150
164
  - lib/opentelemetry-instrumentation-base.rb
151
165
  - lib/opentelemetry/instrumentation.rb
152
166
  - lib/opentelemetry/instrumentation/base.rb
153
- - lib/opentelemetry/instrumentation/registry.rb
154
167
  - lib/opentelemetry/instrumentation/version.rb
155
168
  homepage: https://github.com/open-telemetry/opentelemetry-ruby
156
169
  licenses:
157
170
  - Apache-2.0
158
171
  metadata:
159
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-base/v0.20.0/file.CHANGELOG.html
172
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-base/v0.21.0/file.CHANGELOG.html
160
173
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/base
161
174
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
162
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-base/v0.20.0
175
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-base/v0.21.0
163
176
  post_install_message:
164
177
  rdoc_options: []
165
178
  require_paths:
@@ -168,7 +181,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
181
  requirements:
169
182
  - - ">="
170
183
  - !ruby/object:Gem::Version
171
- version: 2.5.0
184
+ version: 2.6.0
172
185
  required_rubygems_version: !ruby/object:Gem::Requirement
173
186
  requirements:
174
187
  - - ">="
@@ -1,88 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Copyright The OpenTelemetry Authors
4
- #
5
- # SPDX-License-Identifier: Apache-2.0
6
-
7
- module OpenTelemetry
8
- module Instrumentation
9
- # The instrumentation Registry contains information about instrumentation
10
- # available and facilitates discovery, installation and
11
- # configuration. This functionality is primarily useful for SDK
12
- # implementors.
13
- class Registry
14
- def initialize
15
- @lock = Mutex.new
16
- @instrumentation = []
17
- end
18
-
19
- # @api private
20
- def register(instrumentation)
21
- @lock.synchronize do
22
- @instrumentation << instrumentation
23
- end
24
- end
25
-
26
- # Lookup an instrumentation definition by name. Returns nil if +instrumentation_name+
27
- # is not found.
28
- #
29
- # @param [String] instrumentation_name A stringified class name for an instrumentation
30
- # @return [Instrumentation]
31
- def lookup(instrumentation_name)
32
- @lock.synchronize do
33
- find_instrumentation(instrumentation_name)
34
- end
35
- end
36
-
37
- # Install the specified instrumentation with optionally specified configuration.
38
- #
39
- # @param [Array<String>] instrumentation_names An array of instrumentation names to
40
- # install
41
- # @param [optional Hash<String, Hash>] instrumentation_config_map A map of
42
- # instrumentation_name to config. This argument is optional and config can be
43
- # passed for as many or as few instrumentations as desired.
44
- def install(instrumentation_names, instrumentation_config_map = {})
45
- @lock.synchronize do
46
- instrumentation_names.each do |instrumentation_name|
47
- instrumentation = find_instrumentation(instrumentation_name)
48
- if instrumentation.nil?
49
- OpenTelemetry.logger.warn "Could not install #{instrumentation_name} because it was not found"
50
- else
51
- install_instrumentation(instrumentation, instrumentation_config_map[instrumentation.name])
52
- end
53
- end
54
- end
55
- end
56
-
57
- # Install all instrumentation available and installable in this process.
58
- #
59
- # @param [optional Hash<String, Hash>] instrumentation_config_map A map of
60
- # instrumentation_name to config. This argument is optional and config can be
61
- # passed for as many or as few instrumentations as desired.
62
- def install_all(instrumentation_config_map = {})
63
- @lock.synchronize do
64
- @instrumentation.map(&:instance).each do |instrumentation|
65
- install_instrumentation(instrumentation, instrumentation_config_map[instrumentation.name])
66
- end
67
- end
68
- end
69
-
70
- private
71
-
72
- def find_instrumentation(instrumentation_name)
73
- @instrumentation.detect { |a| a.instance.name == instrumentation_name }
74
- &.instance
75
- end
76
-
77
- def install_instrumentation(instrumentation, config)
78
- if instrumentation.install(config)
79
- OpenTelemetry.logger.info "Instrumentation: #{instrumentation.name} was successfully installed with the following options #{instrumentation.config}"
80
- else
81
- OpenTelemetry.logger.warn "Instrumentation: #{instrumentation.name} failed to install"
82
- end
83
- rescue => e # rubocop:disable Style/RescueStandardError
84
- OpenTelemetry.handle_error(exception: e, message: "Instrumentation: #{instrumentation.name} unhandled exception during install: #{e.backtrace}")
85
- end
86
- end
87
- end
88
- end