Skip to content

Commit ebc4498

Browse files
committed
address review: add type annotation, validate entry point group in test
- Add PrometheusMetricExporterConfig type annotation to _create_prometheus_metric_reader config parameter - Assert entry_points is called with the correct group name (opentelemetry_pull_metric_exporter) in plugin loading test Assisted-by: Claude Opus 4.6
1 parent 99dd5f5 commit ebc4498

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

opentelemetry-sdk/src/opentelemetry/sdk/_configuration/_meter_provider.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
from opentelemetry.sdk._configuration.models import (
2121
ExemplarFilter as ExemplarFilterConfig,
2222
)
23+
from opentelemetry.sdk._configuration.models import (
24+
ExperimentalPrometheusMetricExporter as PrometheusMetricExporterConfig,
25+
)
2326
from opentelemetry.sdk._configuration.models import (
2427
ExporterDefaultHistogramAggregation,
2528
ExporterTemporalityPreference,
@@ -391,7 +394,9 @@ def _create_periodic_metric_reader(
391394
)
392395

393396

394-
def _create_prometheus_metric_reader(config) -> MetricReader:
397+
def _create_prometheus_metric_reader(
398+
config: PrometheusMetricExporterConfig,
399+
) -> MetricReader:
395400
"""Create a PrometheusMetricReader from config.
396401
397402
Dynamically imports the prometheus exporter package to avoid a hard

opentelemetry-sdk/tests/_configuration/test_meter_provider.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,12 @@ def test_pull_no_exporter_raises(self):
382382
def test_pull_plugin_loads_via_entry_point(self):
383383
mock_reader = MagicMock()
384384
mock_class = MagicMock(return_value=mock_reader)
385+
mock_entry_points = MagicMock(
386+
return_value=[MagicMock(**{"load.return_value": mock_class})]
387+
)
385388
with patch(
386389
"opentelemetry.sdk._configuration._common.entry_points",
387-
return_value=[MagicMock(**{"load.return_value": mock_class})],
390+
mock_entry_points,
388391
):
389392
config = MeterProviderConfig(
390393
readers=[
@@ -401,6 +404,10 @@ def test_pull_plugin_loads_via_entry_point(self):
401404
provider = create_meter_provider(config)
402405
self.assertEqual(len(provider._sdk_config.metric_readers), 1)
403406
mock_class.assert_called_once_with(port=8080)
407+
mock_entry_points.assert_called_once_with(
408+
group="opentelemetry_pull_metric_exporter",
409+
name="my_custom_reader",
410+
)
404411

405412
def test_pull_plugin_not_found_raises(self):
406413
with patch(

0 commit comments

Comments
 (0)