opentelemetry-instrumentation-base 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: 36880f3027db5ce9434787fc96f373497e7e4a0986bba01db8936abd6a6c6f60
4
- data.tar.gz: 2b6e9ef13f8ccad67f9c3d1138343192b4ea9df5fc0393acea2351b3bc498cf4
3
+ metadata.gz: 68289a48e73f4b932c2bfec1ec6c41bd2762dd6c7a8801bd58f1f84307857335
4
+ data.tar.gz: f7897e296091d94828653e0696ab5321e3ee63f355e082228a0d608b34ab5494
5
5
  SHA512:
6
- metadata.gz: 90af953fd300ccbf1dbde0381999279d3773d79a02297b97ad5148eb070ea6fab7cbcaf38b82f6f2f3b60e4256b49302f0f844e77cfecfcd7d9d4b11b05fe095
7
- data.tar.gz: e58a221f4f846955c7d122b15766b2afba00007343ae54e8fa890346ad3d3ff56c08bdb9d297084ba0c84da6cd9152dba27b09e74850811737143181cd47c24f
6
+ metadata.gz: 2f49d6aa1665d9452a390d160df35b3d004e221621284aac29662d9b8c8d01c22a96fed65ccc4d15fd2d6a344afa68729c345a31ce98f0fcc7459f77157624a3
7
+ data.tar.gz: a18559b8b4ae2fb1d9ef12d132f2268089139594ac6c6f9e2326174b3930812307347e5961a051d4e7a6470ee54043847344850e9e12c3d1d4a0c6ef501a7cef
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Release History: opentelemetry-instrumentation-base
2
2
 
3
+ ### v0.21.1 / 2023-01-14
4
+
5
+ * DOCS: Fix gem homepage
6
+ * DOCS: More gem documentation fixes
7
+
8
+ ### v0.21.0 / 2022-05-26
9
+
10
+ * BREAKING CHANGE: This requires upgrading both the SDK and Instrumentation gem in tandem
11
+
12
+
3
13
  ### v0.20.0 / 2022-05-02
4
14
 
5
15
  * ADDED: Validate Using Enums
data/README.md CHANGED
@@ -148,7 +148,7 @@ The `opentelemetry-instrumentation-base` gem is distributed under the Apache 2.0
148
148
 
149
149
  [bundler-home]: https://bundler.io
150
150
  [repo-github]: https://github.com/open-telemetry/opentelemetry-ruby
151
- [license-github]: https://github.com/open-telemetry/opentelemetry-ruby/blob/main/LICENSE
151
+ [license-github]: https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/main/LICENSE
152
152
  [ruby-sig]: https://github.com/open-telemetry/community#ruby-sig
153
153
  [community-meetings]: https://github.com/open-telemetry/community#community-meetings
154
154
  [discussions-url]: https://github.com/open-telemetry/opentelemetry-ruby/discussions
@@ -72,9 +72,9 @@ module OpenTelemetry
72
72
 
73
73
  private_constant :NAME_REGEX, :VALIDATORS
74
74
 
75
- private :new # rubocop:disable Style/AccessModifierDeclarations
75
+ private :new
76
76
 
77
- def inherited(subclass)
77
+ def inherited(subclass) # rubocop:disable Lint/MissingSuper
78
78
  OpenTelemetry::Instrumentation.registry.register(subclass)
79
79
  end
80
80
 
@@ -193,6 +193,7 @@ module OpenTelemetry
193
193
 
194
194
  alias installed? installed
195
195
 
196
+ # rubocop:disable Metrics/ParameterLists
196
197
  def initialize(name, version, install_blk, present_blk,
197
198
  compatible_blk, options)
198
199
  @name = name
@@ -205,6 +206,7 @@ module OpenTelemetry
205
206
  @options = options
206
207
  @tracer = OpenTelemetry::Trace::Tracer.new
207
208
  end
209
+ # rubocop:enable Metrics/ParameterLists
208
210
 
209
211
  # Install instrumentation with the given config. The present? and compatible?
210
212
  # will be run first, and install will return false if either fail. Will
@@ -266,7 +268,7 @@ module OpenTelemetry
266
268
  # Invalid configuration values are logged, and replaced by the default.
267
269
  #
268
270
  # @param [Hash] user_config The user supplied configuration hash
269
- def config_options(user_config) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
271
+ def config_options(user_config) # rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
270
272
  @options ||= {}
271
273
  user_config ||= {}
272
274
  config_overrides = config_overrides_from_env
@@ -275,6 +277,7 @@ module OpenTelemetry
275
277
  config_value = user_config[option_name]
276
278
  config_override = coerce_env_var(config_overrides[option_name], option[:validation_type]) if config_overrides[option_name]
277
279
 
280
+ # rubocop:disable Lint/DuplicateBranch
278
281
  value = if config_value.nil? && config_override.nil?
279
282
  option[:default]
280
283
  elsif option[:validator].respond_to?(:include?) && option[:validator].include?(config_override)
@@ -292,6 +295,7 @@ module OpenTelemetry
292
295
  )
293
296
  option[:default]
294
297
  end
298
+ # rubocop:enable Lint/DuplicateBranch
295
299
 
296
300
  h[option_name] = value
297
301
  rescue StandardError => e
@@ -6,6 +6,6 @@
6
6
 
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
- VERSION = '0.20.0'
9
+ VERSION = '0.21.1'
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.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-05-02 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
@@ -24,20 +24,34 @@ 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
30
44
  requirements:
31
- - - ">="
45
+ - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '1.17'
47
+ version: '2.4'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - ">="
52
+ - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '1.17'
54
+ version: '2.4'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: minitest
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +86,28 @@ dependencies:
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: 12.3.3
89
+ version: '13.0'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: 12.3.3
96
+ version: '13.0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: rubocop
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.73.0
103
+ version: 1.41.1
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.73.0
110
+ version: 1.41.1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: simplecov
99
113
  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
- homepage: https://github.com/open-telemetry/opentelemetry-ruby
168
+ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
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
160
- source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/base
161
- 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
172
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-base/0.21.1/file/CHANGELOG.md
173
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/base
174
+ bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
175
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-base/0.21.1
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