From 6a3a3432293e6b55afd8567ba0eb56a633c69405 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Fri, 23 Jan 2026 13:15:08 +0900 Subject: [PATCH 1/2] test-util: allow filtering metrics by scope --- .../src/opentelemetry/test/test_base.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py b/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py index 69da617bb69..f6ad0e80981 100644 --- a/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py +++ b/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py @@ -142,7 +142,14 @@ def disable_logging(highest_level=logging.CRITICAL): finally: logging.disable(logging.NOTSET) - def get_sorted_metrics(self): + def get_sorted_metrics(self, scope: Optional[str] = None): + """Returns recorded metrics sorted by name. + + Args: + scope: Optional scope name to filter metrics by. If unset, + all metrics except for those generated by the SDK + are returned. + """ metrics_data = self.memory_metrics_reader.get_metrics_data() resource_metrics = ( metrics_data.resource_metrics if metrics_data else [] @@ -151,6 +158,11 @@ def get_sorted_metrics(self): all_metrics = [] for metrics in resource_metrics: for scope_metrics in metrics.scope_metrics: + if scope is None: + if scope_metrics.scope.name == "opentelemetry-sdk": + continue + elif scope_metrics.scope.name != scope: + continue all_metrics.extend(scope_metrics.metrics) return self.sorted_metrics(all_metrics) From 9d9abe15e775f209688a7cb958a7171f119b9395 Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Fri, 23 Jan 2026 15:35:15 +0100 Subject: [PATCH 2/2] Apply suggestions from code review --- .../src/opentelemetry/test/test_base.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py b/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py index f6ad0e80981..0ec7d594ca5 100644 --- a/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py +++ b/tests/opentelemetry-test-utils/src/opentelemetry/test/test_base.py @@ -147,8 +147,7 @@ def get_sorted_metrics(self, scope: Optional[str] = None): Args: scope: Optional scope name to filter metrics by. If unset, - all metrics except for those generated by the SDK - are returned. + all metrics are returned. """ metrics_data = self.memory_metrics_reader.get_metrics_data() resource_metrics = ( @@ -158,10 +157,7 @@ def get_sorted_metrics(self, scope: Optional[str] = None): all_metrics = [] for metrics in resource_metrics: for scope_metrics in metrics.scope_metrics: - if scope is None: - if scope_metrics.scope.name == "opentelemetry-sdk": - continue - elif scope_metrics.scope.name != scope: + if scope is not None and scope_metrics.scope.name != scope: continue all_metrics.extend(scope_metrics.metrics)