From 263ccef676f13bf6101c4f5a74cc0a8e17e84caf Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Thu, 2 Apr 2026 09:09:03 +0200 Subject: [PATCH] opentelemetry-sdk: fix a bunch of trivial typing issues in metrics --- .../src/opentelemetry/sdk/metrics/__init__.py | 3 +++ .../opentelemetry/sdk/metrics/_internal/__init__.py | 2 +- .../sdk/metrics/_internal/measurement_consumer.py | 6 +++--- .../sdk/metrics/_internal/sdk_configuration.py | 4 ++-- pyproject.toml | 12 +++++++++++- 5 files changed, 20 insertions(+), 7 deletions(-) diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py index b022f1294f0..4507c5e1f82 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/__init__.py @@ -13,6 +13,7 @@ # limitations under the License. +from opentelemetry.sdk.metrics import export, view from opentelemetry.sdk.metrics._internal import Meter, MeterProvider from opentelemetry.sdk.metrics._internal.exceptions import MetricsTimeoutError from opentelemetry.sdk.metrics._internal.exemplar import ( @@ -54,4 +55,6 @@ "SimpleFixedSizeExemplarReservoir", "UpDownCounter", "TraceBasedExemplarFilter", + "export", + "view", ] diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py index 855e3f8e1c9..dfa3a6716e5 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py @@ -563,7 +563,7 @@ def get_meter( version: Optional[str] = None, schema_url: Optional[str] = None, attributes: Optional[Attributes] = None, - ) -> Meter: + ) -> APIMeter: if self._disabled: return NoOpMeter(name, version=version, schema_url=schema_url) diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py index 287e505b040..302f82d9924 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py @@ -41,7 +41,7 @@ def consume_measurement(self, measurement: Measurement) -> None: def register_asynchronous_instrument( self, instrument: ( - "opentelemetry.sdk.metrics._internal.instrument_Asynchronous" + "opentelemetry.sdk.metrics._internal.instrument._Asynchronous" ), ): pass @@ -49,7 +49,7 @@ def register_asynchronous_instrument( @abstractmethod def collect( self, - metric_reader: "opentelemetry.sdk.metrics.MetricReader", + metric_reader: "opentelemetry.sdk.metrics.export.MetricReader", timeout_millis: float = 10_000, ) -> Optional[MetricsData]: pass @@ -102,7 +102,7 @@ def register_asynchronous_instrument( def collect( self, - metric_reader: "opentelemetry.sdk.metrics.MetricReader", + metric_reader: "opentelemetry.sdk.metrics.export.MetricReader", timeout_millis: float = 10_000, ) -> Optional[MetricsData]: with self._lock: diff --git a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/sdk_configuration.py b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/sdk_configuration.py index 3d88facb0c3..f5d176d0b02 100644 --- a/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/sdk_configuration.py +++ b/opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/sdk_configuration.py @@ -26,5 +26,5 @@ class SdkConfiguration: exemplar_filter: "opentelemetry.sdk.metrics.ExemplarFilter" resource: "opentelemetry.sdk.resources.Resource" - metric_readers: Sequence["opentelemetry.sdk.metrics.MetricReader"] - views: Sequence["opentelemetry.sdk.metrics.View"] + metric_readers: Sequence["opentelemetry.sdk.metrics.export.MetricReader"] + views: Sequence["opentelemetry.sdk.metrics.view.View"] diff --git a/pyproject.toml b/pyproject.toml index 0219cfaffc8..2d93d57e142 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -126,7 +126,17 @@ include = [ exclude = [ "opentelemetry-sdk/tests", "opentelemetry-sdk/src/opentelemetry/sdk/_events", - "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/__init__.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/_view_instrument_match.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/aggregation.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exemplar/exemplar_reservoir.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/exponential_histogram/", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/export/", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/instrument.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/measurement_consumer.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/metric_reader_storage.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/point.py", + "opentelemetry-sdk/src/opentelemetry/sdk/metrics/_internal/view.py", "opentelemetry-sdk/benchmarks", "exporter/opentelemetry-exporter-otlp-proto-grpc/tests", ]