opentelemetry-metrics-api 0.9.0 → 0.10.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: '01447149549ce311507e50a73b1c25962ea229f9d30fee3878ca09b519e278ba'
4
- data.tar.gz: c7cf8d92fd0a56ee620a0c465f10178dde5773652482ca02b607fd3db06d4884
3
+ metadata.gz: '035779447efea7942cbd75c69833e5bf98e405c79feb87fee1bbc95c33b25446'
4
+ data.tar.gz: 5de788278de6a22c06316ea2af2c36d2ea4c7eb071dc6c7c207c31729ac77ec0
5
5
  SHA512:
6
- metadata.gz: fb53b43bcbce42330ba77fc382e398f6972cbe7b643d346bd6afe63fc7e354fac8f0874bb56858fea667e5015e21a5c8ac2dcb15cb67a34b0da847b2f7b5d9e0
7
- data.tar.gz: 6ffc9da9c4603ded64ba39f805bc73f4bd37dea3044e306e97f6a217e2efca1823801331c07083b146b2dd1807f42a95142ef8966811df6aba7d8b6443064bae
6
+ metadata.gz: cdc4348854acf2433a651c6199232d15cd64fb705bdde5254cdf7ee535a574a35621a7aae15814d2e39abbe7b7e468ed99718c5f05350a54d28934eb59e96582
7
+ data.tar.gz: 12cb89591164ccedc1e6a730b0c89f8bd8f84d9851bb06d86931eb9b840973b4e7747227e08d39613b325612d44d6b5974d2e29fcc242bfb180de3513a57aee2
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Release History: opentelemetry-metrics-api
2
2
 
3
+ ### v0.10.0 / 2026-10-13
4
+
5
+ * ADDED: Fix duplicate instrument registration warning (#2417)
6
+
3
7
  ### v0.9.0 / 2026-10-05
4
8
 
5
9
  * BREAKING CHANGE: Move the global meter provider behind an opt-in require (#2416)
@@ -19,6 +19,9 @@ module OpenTelemetry
19
19
  def initialize
20
20
  super
21
21
  @delegate = nil
22
+ # Every placeholder created before the delegate is set, including repeated and
23
+ # conflicting registrations of the same name, so that each one gets upgraded.
24
+ @proxy_instruments = []
22
25
  end
23
26
 
24
27
  # Set the delegate Meter. If this is called more than once, a warning will
@@ -29,7 +32,8 @@ module OpenTelemetry
29
32
  @mutex.synchronize do
30
33
  if @delegate.nil?
31
34
  @delegate = meter
32
- @instrument_registry.each_value { |instrument| instrument.upgrade_with(meter) }
35
+ @proxy_instruments.each { |instrument| instrument.upgrade_with(meter) }
36
+ @proxy_instruments.clear
33
37
  else
34
38
  OpenTelemetry.logger.warn 'Attempt to reset delegate in ProxyMeter ignored.'
35
39
  end
@@ -38,9 +42,15 @@ module OpenTelemetry
38
42
 
39
43
  private
40
44
 
45
+ # Does not call `super`: the base registry keys instruments by name, so a repeated
46
+ # registration would replace an earlier placeholder that then never gets upgraded.
41
47
  def create_instrument(kind, name, unit, description, callback, exemplar_filter, exemplar_reservoir, advisory)
42
- super do
43
- next ProxyInstrument.new(kind, name, unit, description, callback, exemplar_filter, exemplar_reservoir, advisory) if @delegate.nil?
48
+ @mutex.synchronize do
49
+ if @delegate.nil?
50
+ instrument = ProxyInstrument.new(kind, name, unit, description, callback, exemplar_filter, exemplar_reservoir, advisory)
51
+ @proxy_instruments << instrument
52
+ next instrument
53
+ end
44
54
 
45
55
  case kind
46
56
  when :counter then @delegate.create_counter(name, unit: unit, description: description, exemplar_filter: exemplar_filter, exemplar_reservoir: exemplar_reservoir, advisory: advisory)
@@ -304,8 +304,6 @@ module OpenTelemetry
304
304
 
305
305
  def create_instrument(kind, name, unit, description, callback, exemplar_filter, exemplar_reservoir, advisory)
306
306
  @mutex.synchronize do
307
- OpenTelemetry.logger.warn("duplicate instrument registration occurred for instrument #{name}") if @instrument_registry.include? name
308
-
309
307
  @instrument_registry[name] = yield
310
308
  end
311
309
  end
@@ -7,6 +7,6 @@
7
7
  module OpenTelemetry
8
8
  module Metrics
9
9
  ## Current OpenTelemetry metrics version
10
- VERSION = '0.9.0'
10
+ VERSION = '0.10.0'
11
11
  end
12
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-metrics-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
@@ -57,10 +57,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
57
57
  licenses:
58
58
  - Apache-2.0
59
59
  metadata:
60
- changelog_uri: https://rubydoc.info/gems/opentelemetry-metrics-api/0.9.0/file/CHANGELOG.md
61
- source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-metrics-api/v0.9.0/metrics_api
60
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-metrics-api/0.10.0/file/CHANGELOG.md
61
+ source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/opentelemetry-metrics-api/v0.10.0/metrics_api
62
62
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
63
- documentation_uri: https://rubydoc.info/gems/opentelemetry-metrics-api/0.9.0
63
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-metrics-api/0.10.0
64
64
  rdoc_options: []
65
65
  require_paths:
66
66
  - lib