Skip to content

Commit 1372540

Browse files
committed
Move Advisory types to metrics _internal and export the public one
1 parent 0b6fc1f commit 1372540

File tree

5 files changed

+31
-32
lines changed

5 files changed

+31
-32
lines changed

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

+4
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
Counter,
5656
Histogram,
5757
Instrument,
58+
MetricsCommonAdvisory,
59+
MetricsHistogramAdvisory,
5860
NoOpCounter,
5961
NoOpHistogram,
6062
NoOpObservableCounter,
@@ -129,4 +131,6 @@
129131
"Observation",
130132
"CallbackT",
131133
"NoOpMeter",
134+
"MetricsCommonAdvisory",
135+
"MetricsHistogramAdvisory",
132136
]

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

+6-6
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@
5454
Counter,
5555
Gauge,
5656
Histogram,
57+
MetricsCommonAdvisory,
58+
MetricsHistogramAdvisory,
5759
NoOpCounter,
5860
NoOpGauge,
5961
NoOpHistogram,
@@ -65,6 +67,7 @@
6567
ObservableGauge,
6668
ObservableUpDownCounter,
6769
UpDownCounter,
70+
_MetricsInstrumentAdvisory,
6871
_ProxyCounter,
6972
_ProxyGauge,
7073
_ProxyHistogram,
@@ -77,9 +80,6 @@
7780
from opentelemetry.util._providers import _load_provider
7881
from opentelemetry.util.types import (
7982
Attributes,
80-
MetricsCommonAdvisory,
81-
MetricsHistogramAdvisory,
82-
MetricsInstrumentAdvisory,
8383
)
8484

8585
_logger = getLogger(__name__)
@@ -188,7 +188,7 @@ class _InstrumentRegistrationStatus:
188188
instrument_id: str
189189
already_registered: bool
190190
conflict: bool
191-
current_advisory: Optional[MetricsInstrumentAdvisory]
191+
current_advisory: Optional[_MetricsInstrumentAdvisory]
192192

193193

194194
class Meter(ABC):
@@ -209,7 +209,7 @@ def __init__(
209209
self._version = version
210210
self._schema_url = schema_url
211211
self._instrument_ids: Dict[
212-
str, Optional[MetricsInstrumentAdvisory]
212+
str, Optional[_MetricsInstrumentAdvisory]
213213
] = {}
214214
self._instrument_ids_lock = Lock()
215215

@@ -240,7 +240,7 @@ def _register_instrument(
240240
type_: type,
241241
unit: str,
242242
description: str,
243-
advisory: Optional[MetricsInstrumentAdvisory] = None,
243+
advisory: Optional[_MetricsInstrumentAdvisory] = None,
244244
) -> _InstrumentRegistrationStatus:
245245
"""
246246
Register an instrument with the name, type, unit and description as

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

+19-7
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@
3838
from opentelemetry.metrics._internal.observation import Observation
3939
from opentelemetry.util.types import (
4040
Attributes,
41-
MetricsCommonAdvisory,
42-
MetricsHistogramAdvisory,
43-
MetricsInstrumentAdvisory,
4441
)
4542

4643
_logger = getLogger(__name__)
@@ -49,6 +46,21 @@
4946
_unit_regex = re_compile(r"[\x00-\x7F]{0,63}")
5047

5148

49+
@dataclass(frozen=True)
50+
class MetricsHistogramAdvisory:
51+
explicit_bucket_boundaries: Optional[Sequence[float]] = None
52+
53+
54+
@dataclass(frozen=True)
55+
class MetricsCommonAdvisory:
56+
pass
57+
58+
59+
_MetricsInstrumentAdvisory = Union[
60+
MetricsCommonAdvisory, MetricsHistogramAdvisory
61+
]
62+
63+
5264
@dataclass(frozen=True)
5365
class CallbackOptions:
5466
"""Options for the callback
@@ -78,7 +90,7 @@ def __init__(
7890
name: str,
7991
unit: str = "",
8092
description: str = "",
81-
advisory: Optional[MetricsInstrumentAdvisory] = None,
93+
advisory: Optional[_MetricsInstrumentAdvisory] = None,
8294
) -> None:
8395
pass
8496

@@ -124,7 +136,7 @@ def __init__(
124136
name: str,
125137
unit: str = "",
126138
description: str = "",
127-
advisory: Optional[MetricsInstrumentAdvisory] = None,
139+
advisory: Optional[_MetricsInstrumentAdvisory] = None,
128140
) -> None:
129141
self._name = name
130142
self._unit = unit
@@ -152,7 +164,7 @@ def __init__(
152164
callbacks: Optional[Sequence[CallbackT]] = None,
153165
unit: str = "",
154166
description: str = "",
155-
advisory: Optional[MetricsInstrumentAdvisory] = None,
167+
advisory: Optional[_MetricsInstrumentAdvisory] = None,
156168
) -> None:
157169
super().__init__(name, unit, description, advisory=advisory)
158170
self._callbacks = callbacks
@@ -172,7 +184,7 @@ def __init__(
172184
callbacks: Optional[Sequence[CallbackT]] = None,
173185
unit: str = "",
174186
description: str = "",
175-
advisory: Optional[MetricsInstrumentAdvisory] = None,
187+
advisory: Optional[_MetricsInstrumentAdvisory] = None,
176188
) -> None:
177189
super().__init__(
178190
name, unit=unit, description=description, advisory=advisory

opentelemetry-api/src/opentelemetry/util/types.py

-16
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
from dataclasses import dataclass
1615
from typing import Mapping, Optional, Sequence, Tuple, Union
1716

1817
# This is the implementation of the "Any" type as specified by the specifications of OpenTelemetry data model for logs.
@@ -56,18 +55,3 @@
5655
],
5756
...,
5857
]
59-
60-
61-
@dataclass
62-
class MetricsHistogramAdvisory:
63-
explicit_bucket_boundaries: Optional[Sequence[float]] = None
64-
65-
66-
@dataclass
67-
class MetricsCommonAdvisory:
68-
pass
69-
70-
71-
MetricsInstrumentAdvisory = Union[
72-
MetricsCommonAdvisory, MetricsHistogramAdvisory
73-
]

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

+2-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# This kind of import is needed to avoid Sphinx errors.
2222
import opentelemetry.sdk.metrics
2323
from opentelemetry.context import Context, get_current
24-
from opentelemetry.metrics import CallbackT
24+
from opentelemetry.metrics import CallbackT, MetricsHistogramAdvisory
2525
from opentelemetry.metrics import Counter as APICounter
2626
from opentelemetry.metrics import Histogram as APIHistogram
2727
from opentelemetry.metrics import ObservableCounter as APIObservableCounter
@@ -34,7 +34,6 @@
3434
from opentelemetry.metrics._internal.instrument import CallbackOptions
3535
from opentelemetry.sdk.metrics._internal.measurement import Measurement
3636
from opentelemetry.sdk.util.instrumentation import InstrumentationScope
37-
from opentelemetry.util.types import MetricsInstrumentAdvisory
3837

3938
_logger = getLogger(__name__)
4039

@@ -227,7 +226,7 @@ def __init__(
227226
measurement_consumer: "opentelemetry.sdk.metrics.MeasurementConsumer",
228227
unit: str = "",
229228
description: str = "",
230-
advisory: Optional[MetricsInstrumentAdvisory] = None,
229+
advisory: Optional[MetricsHistogramAdvisory] = None,
231230
):
232231
super().__init__(
233232
name,

0 commit comments

Comments
 (0)