Skip to content

Commit 5cd650a

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

File tree

10 files changed

+37
-39
lines changed

10 files changed

+37
-39
lines changed

docs/examples/metrics/instruments/example.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
)
66
from opentelemetry.metrics import (
77
CallbackOptions,
8+
MetricsHistogramAdvisory,
89
Observation,
910
get_meter_provider,
1011
set_meter_provider,
1112
)
1213
from opentelemetry.sdk.metrics import MeterProvider
1314
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
14-
from opentelemetry.util.types import MetricsHistogramAdvisory
1515

1616
exporter = OTLPMetricExporter(insecure=True)
1717
reader = PeriodicExportingMetricReader(exporter)

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

Lines changed: 4 additions & 0 deletions
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

Lines changed: 6 additions & 6 deletions
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

Lines changed: 19 additions & 7 deletions
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

Lines changed: 0 additions & 16 deletions
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/__init__.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from opentelemetry.metrics import Histogram as APIHistogram
2727
from opentelemetry.metrics import Meter as APIMeter
2828
from opentelemetry.metrics import MeterProvider as APIMeterProvider
29-
from opentelemetry.metrics import NoOpMeter
29+
from opentelemetry.metrics import MetricsHistogramAdvisory, NoOpMeter
3030
from opentelemetry.metrics import ObservableCounter as APIObservableCounter
3131
from opentelemetry.metrics import ObservableGauge as APIObservableGauge
3232
from opentelemetry.metrics import (
@@ -66,7 +66,6 @@
6666
from opentelemetry.util._once import Once
6767
from opentelemetry.util.types import (
6868
Attributes,
69-
MetricsHistogramAdvisory,
7069
)
7170

7271
_logger = getLogger(__name__)

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

Lines changed: 2 additions & 3 deletions
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,

opentelemetry-sdk/tests/metrics/integration_test/test_histogram_advisory_explicit_buckets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414

1515
from unittest import TestCase
1616

17+
from opentelemetry.metrics import MetricsHistogramAdvisory
1718
from opentelemetry.sdk.metrics import MeterProvider
1819
from opentelemetry.sdk.metrics.export import InMemoryMetricReader
1920
from opentelemetry.sdk.metrics.view import (
2021
ExplicitBucketHistogramAggregation,
2122
View,
2223
)
23-
from opentelemetry.util.types import MetricsHistogramAdvisory
2424

2525

2626
class TestHistogramAdvisory(TestCase):

opentelemetry-sdk/tests/metrics/test_aggregation.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from unittest.mock import Mock
2222

2323
from opentelemetry.context import Context
24+
from opentelemetry.metrics import MetricsHistogramAdvisory
2425
from opentelemetry.sdk.metrics._internal.aggregation import (
2526
_ExplicitBucketHistogramAggregation,
2627
_LastValueAggregation,
@@ -51,7 +52,7 @@
5152
LastValueAggregation,
5253
SumAggregation,
5354
)
54-
from opentelemetry.util.types import Attributes, MetricsHistogramAdvisory
55+
from opentelemetry.util.types import Attributes
5556

5657

5758
def measurement(

opentelemetry-sdk/tests/metrics/test_metrics.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from unittest.mock import MagicMock, Mock, patch
2222

2323
from opentelemetry.attributes import BoundedAttributes
24-
from opentelemetry.metrics import NoOpMeter
24+
from opentelemetry.metrics import MetricsHistogramAdvisory, NoOpMeter
2525
from opentelemetry.sdk.environment_variables import OTEL_SDK_DISABLED
2626
from opentelemetry.sdk.metrics import (
2727
Counter,
@@ -46,7 +46,6 @@
4646
from opentelemetry.sdk.resources import Resource
4747
from opentelemetry.test import TestCase
4848
from opentelemetry.test.concurrency_test import ConcurrencyTestBase, MockFunc
49-
from opentelemetry.util.types import MetricsHistogramAdvisory
5049

5150

5251
class DummyMetricReader(MetricReader):

0 commit comments

Comments
 (0)