Skip to content

Commit 85be148

Browse files
committed
Return instrument_id in _InstrumentRegistrationStatus
1 parent c3c6194 commit 85be148

File tree

2 files changed

+32
-52
lines changed
  • opentelemetry-api/src/opentelemetry/metrics/_internal
  • opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal

2 files changed

+32
-52
lines changed

opentelemetry-api/src/opentelemetry/metrics/_internal/__init__.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
from logging import getLogger
4747
from os import environ
4848
from threading import Lock
49-
from typing import Dict, List, Optional, Sequence, Tuple, Union, cast
49+
from typing import Dict, List, Optional, Sequence, Union, cast
5050

5151
from opentelemetry.environment_variables import OTEL_PYTHON_METER_PROVIDER
5252
from opentelemetry.metrics._internal.instrument import (
@@ -184,6 +184,7 @@ def on_set_meter_provider(self, meter_provider: MeterProvider) -> None:
184184

185185
@dataclass
186186
class _InstrumentRegistrationStatus:
187+
instrument_id: str
187188
already_registered: bool
188189
conflict: bool
189190
current_advisory: Optional[MetricsInstrumentAdvisory]
@@ -239,7 +240,7 @@ def _register_instrument(
239240
unit: str,
240241
description: str,
241242
advisory: Optional[MetricsInstrumentAdvisory] = None,
242-
) -> Tuple[str, _InstrumentRegistrationStatus]:
243+
) -> _InstrumentRegistrationStatus:
243244
"""
244245
Register an instrument with the name, type, unit and description as
245246
identifying keys and the advisory as value.
@@ -269,8 +270,8 @@ def _register_instrument(
269270
self._instrument_ids[instrument_id] = advisory
270271

271272
return (
272-
instrument_id,
273273
_InstrumentRegistrationStatus(
274+
instrument_id=instrument_id,
274275
already_registered=already_registered,
275276
conflict=conflict,
276277
current_advisory=current_advisory,
@@ -650,7 +651,7 @@ def create_counter(
650651
advisory: None = None,
651652
) -> Counter:
652653
"""Returns a no-op Counter."""
653-
_, status = self._register_instrument(
654+
status = self._register_instrument(
654655
name, NoOpCounter, unit, description, advisory
655656
)
656657
if status.conflict:
@@ -674,7 +675,7 @@ def create_gauge(
674675
advisory: None = None,
675676
) -> Gauge:
676677
"""Returns a no-op Gauge."""
677-
_, status = self._register_instrument(
678+
status = self._register_instrument(
678679
name, NoOpGauge, unit, description, advisory
679680
)
680681
if status.conflict:
@@ -698,7 +699,7 @@ def create_up_down_counter(
698699
advisory: None = None,
699700
) -> UpDownCounter:
700701
"""Returns a no-op UpDownCounter."""
701-
_, status = self._register_instrument(
702+
status = self._register_instrument(
702703
name, NoOpUpDownCounter, unit, description, advisory
703704
)
704705
if status.conflict:
@@ -723,7 +724,7 @@ def create_observable_counter(
723724
advisory: None = None,
724725
) -> ObservableCounter:
725726
"""Returns a no-op ObservableCounter."""
726-
_, status = self._register_instrument(
727+
status = self._register_instrument(
727728
name, NoOpObservableCounter, unit, description, advisory
728729
)
729730
if status.conflict:
@@ -752,7 +753,7 @@ def create_histogram(
752753
advisory: Optional[MetricsHistogramAdvisory] = None,
753754
) -> Histogram:
754755
"""Returns a no-op Histogram."""
755-
_, status = self._register_instrument(
756+
status = self._register_instrument(
756757
name, NoOpHistogram, unit, description, advisory
757758
)
758759
if status.conflict:
@@ -779,7 +780,7 @@ def create_observable_gauge(
779780
advisory: None = None,
780781
) -> ObservableGauge:
781782
"""Returns a no-op ObservableGauge."""
782-
_, status = self._register_instrument(
783+
status = self._register_instrument(
783784
name, NoOpObservableGauge, unit, description, advisory
784785
)
785786
if status.conflict:
@@ -809,7 +810,7 @@ def create_observable_up_down_counter(
809810
advisory: None = None,
810811
) -> ObservableUpDownCounter:
811812
"""Returns a no-op ObservableUpDownCounter."""
812-
_, status = self._register_instrument(
813+
status = self._register_instrument(
813814
name, NoOpObservableUpDownCounter, unit, description, advisory
814815
)
815816
if status.conflict:

opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py

Lines changed: 21 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,7 @@ def __init__(
9393
def create_counter(
9494
self, name, unit="", description="", advisory=None
9595
) -> APICounter:
96-
(
97-
instrument_id,
98-
status,
99-
) = self._register_instrument(
96+
status = self._register_instrument(
10097
name, _Counter, unit, description, advisory
10198
)
10299

@@ -116,7 +113,7 @@ def create_counter(
116113
)
117114
if status.already_registered:
118115
with self._instrument_id_instrument_lock:
119-
return self._instrument_id_instrument[instrument_id]
116+
return self._instrument_id_instrument[status.instrument_id]
120117

121118
instrument = _Counter(
122119
name,
@@ -127,16 +124,13 @@ def create_counter(
127124
)
128125

129126
with self._instrument_id_instrument_lock:
130-
self._instrument_id_instrument[instrument_id] = instrument
127+
self._instrument_id_instrument[status.instrument_id] = instrument
131128
return instrument
132129

133130
def create_up_down_counter(
134131
self, name, unit="", description="", advisory=None
135132
) -> APIUpDownCounter:
136-
(
137-
instrument_id,
138-
status,
139-
) = self._register_instrument(
133+
status = self._register_instrument(
140134
name, _UpDownCounter, unit, description, advisory
141135
)
142136

@@ -156,7 +150,7 @@ def create_up_down_counter(
156150
)
157151
if status.already_registered:
158152
with self._instrument_id_instrument_lock:
159-
return self._instrument_id_instrument[instrument_id]
153+
return self._instrument_id_instrument[status.instrument_id]
160154

161155
instrument = _UpDownCounter(
162156
name,
@@ -167,16 +161,13 @@ def create_up_down_counter(
167161
)
168162

169163
with self._instrument_id_instrument_lock:
170-
self._instrument_id_instrument[instrument_id] = instrument
164+
self._instrument_id_instrument[status.instrument_id] = instrument
171165
return instrument
172166

173167
def create_observable_counter(
174168
self, name, callbacks=None, unit="", description="", advisory=None
175169
) -> APIObservableCounter:
176-
(
177-
instrument_id,
178-
status,
179-
) = self._register_instrument(
170+
status = self._register_instrument(
180171
name, _ObservableCounter, unit, description, advisory
181172
)
182173

@@ -196,7 +187,7 @@ def create_observable_counter(
196187
)
197188
if status.already_registered:
198189
with self._instrument_id_instrument_lock:
199-
return self._instrument_id_instrument[instrument_id]
190+
return self._instrument_id_instrument[status.instrument_id]
200191

201192
instrument = _ObservableCounter(
202193
name,
@@ -210,7 +201,7 @@ def create_observable_counter(
210201
self._measurement_consumer.register_asynchronous_instrument(instrument)
211202

212203
with self._instrument_id_instrument_lock:
213-
self._instrument_id_instrument[instrument_id] = instrument
204+
self._instrument_id_instrument[status.instrument_id] = instrument
214205
return instrument
215206

216207
def create_histogram(
@@ -237,10 +228,7 @@ def create_histogram(
237228
"Advisory must be a dict with explicit_bucket_boundaries key containing a sequence of numbers"
238229
)
239230

240-
(
241-
instrument_id,
242-
status,
243-
) = self._register_instrument(
231+
status = self._register_instrument(
244232
name, _Histogram, unit, description, advisory
245233
)
246234

@@ -260,7 +248,7 @@ def create_histogram(
260248
)
261249
if status.already_registered:
262250
with self._instrument_id_instrument_lock:
263-
return self._instrument_id_instrument[instrument_id]
251+
return self._instrument_id_instrument[status.instrument_id]
264252

265253
instrument = _Histogram(
266254
name,
@@ -271,16 +259,13 @@ def create_histogram(
271259
advisory,
272260
)
273261
with self._instrument_id_instrument_lock:
274-
self._instrument_id_instrument[instrument_id] = instrument
262+
self._instrument_id_instrument[status.instrument_id] = instrument
275263
return instrument
276264

277265
def create_gauge(
278266
self, name, unit="", description="", advisory=None
279267
) -> APIGauge:
280-
(
281-
instrument_id,
282-
status,
283-
) = self._register_instrument(
268+
status = self._register_instrument(
284269
name, _Gauge, unit, description, advisory
285270
)
286271

@@ -300,7 +285,7 @@ def create_gauge(
300285
)
301286
if status.already_registered:
302287
with self._instrument_id_instrument_lock:
303-
return self._instrument_id_instrument[instrument_id]
288+
return self._instrument_id_instrument[status.instrument_id]
304289

305290
instrument = _Gauge(
306291
name,
@@ -311,16 +296,13 @@ def create_gauge(
311296
)
312297

313298
with self._instrument_id_instrument_lock:
314-
self._instrument_id_instrument[instrument_id] = instrument
299+
self._instrument_id_instrument[status.instrument_id] = instrument
315300
return instrument
316301

317302
def create_observable_gauge(
318303
self, name, callbacks=None, unit="", description="", advisory=None
319304
) -> APIObservableGauge:
320-
(
321-
instrument_id,
322-
status,
323-
) = self._register_instrument(
305+
status = self._register_instrument(
324306
name, _ObservableGauge, unit, description, advisory
325307
)
326308

@@ -340,7 +322,7 @@ def create_observable_gauge(
340322
)
341323
if status.already_registered:
342324
with self._instrument_id_instrument_lock:
343-
return self._instrument_id_instrument[instrument_id]
325+
return self._instrument_id_instrument[status.instrument_id]
344326

345327
instrument = _ObservableGauge(
346328
name,
@@ -354,16 +336,13 @@ def create_observable_gauge(
354336
self._measurement_consumer.register_asynchronous_instrument(instrument)
355337

356338
with self._instrument_id_instrument_lock:
357-
self._instrument_id_instrument[instrument_id] = instrument
339+
self._instrument_id_instrument[status.instrument_id] = instrument
358340
return instrument
359341

360342
def create_observable_up_down_counter(
361343
self, name, callbacks=None, unit="", description="", advisory=None
362344
) -> APIObservableUpDownCounter:
363-
(
364-
instrument_id,
365-
status,
366-
) = self._register_instrument(
345+
status = self._register_instrument(
367346
name, _ObservableUpDownCounter, unit, description, advisory
368347
)
369348

@@ -383,7 +362,7 @@ def create_observable_up_down_counter(
383362
)
384363
if status.already_registered:
385364
with self._instrument_id_instrument_lock:
386-
return self._instrument_id_instrument[instrument_id]
365+
return self._instrument_id_instrument[status.instrument_id]
387366

388367
instrument = _ObservableUpDownCounter(
389368
name,
@@ -397,7 +376,7 @@ def create_observable_up_down_counter(
397376
self._measurement_consumer.register_asynchronous_instrument(instrument)
398377

399378
with self._instrument_id_instrument_lock:
400-
self._instrument_id_instrument[instrument_id] = instrument
379+
self._instrument_id_instrument[status.instrument_id] = instrument
401380
return instrument
402381

403382

0 commit comments

Comments
 (0)