From 06d0d7c3a127b6108cd3b1f27dc657a57e79ba84 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 5 Feb 2026 11:09:24 +0900 Subject: [PATCH 1/3] Add scope to metric assertions in more tests --- .../tests/test_aiohttp_client_integration.py | 5 +- .../tests/test_flask_compatibility.py | 10 ++- .../tests/test_httpx_integration.py | 20 +++-- .../tests/test_automatic.py | 74 +++++++--------- .../tests/test_sqlalchemy_metrics.py | 15 ++-- .../tests/test_metrics_instrumentation.py | 86 ++++++++----------- .../tests/test_metrics_instrumentation.py | 17 ++-- 7 files changed, 108 insertions(+), 119 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py b/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py index a2b3493c0d..2031cef9e6 100644 --- a/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py +++ b/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py @@ -91,6 +91,9 @@ async def do_request(): return loop.run_until_complete(do_request()) +SCOPE = "opentelemetry.instrumentation.aiohttp_client" + + # pylint: disable=too-many-public-methods class TestAioHttpIntegration(TestBase): _test_status_codes = ( @@ -122,7 +125,7 @@ def _assert_spans(self, spans, num_spans=1): ) def _assert_metrics(self, num_metrics: int = 1): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), num_metrics) return metrics diff --git a/instrumentation/opentelemetry-instrumentation-flask/tests/test_flask_compatibility.py b/instrumentation/opentelemetry-instrumentation-flask/tests/test_flask_compatibility.py index 16897ecc8d..dcf9b2bdd6 100644 --- a/instrumentation/opentelemetry-instrumentation-flask/tests/test_flask_compatibility.py +++ b/instrumentation/opentelemetry-instrumentation-flask/tests/test_flask_compatibility.py @@ -302,10 +302,12 @@ def generate(): "Flask 3.1+ streaming context cleanup only enabled on Python 3.10+", ) @skipIf( - lambda: not __import__( - "opentelemetry.instrumentation.flask", - fromlist=["_IS_FLASK_31_PLUS"], - )._IS_FLASK_31_PLUS, + lambda: ( + not __import__( + "opentelemetry.instrumentation.flask", + fromlist=["_IS_FLASK_31_PLUS"], + )._IS_FLASK_31_PLUS + ), "Flask 3.1+ streaming context cleanup requires Flask 3.1+", ) def test_flask_31_streaming_context_cleanup(self): diff --git a/instrumentation/opentelemetry-instrumentation-httpx/tests/test_httpx_integration.py b/instrumentation/opentelemetry-instrumentation-httpx/tests/test_httpx_integration.py index 86eb3ae2f8..7a83c2e933 100644 --- a/instrumentation/opentelemetry-instrumentation-httpx/tests/test_httpx_integration.py +++ b/instrumentation/opentelemetry-instrumentation-httpx/tests/test_httpx_integration.py @@ -142,6 +142,8 @@ async def _async_no_update_request_hook(span: "Span", request: "RequestInfo"): # pylint: disable=too-many-public-methods +SCOPE = "opentelemetry.instrumentation.httpx" + # Using this wrapper class to have a base class for the tests while also not # angering pylint or mypy when calling methods not in the class when only @@ -205,7 +207,7 @@ def assert_span( return span_list def assert_metrics(self, num_metrics: int = 1): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), num_metrics) return metrics @@ -244,7 +246,7 @@ def test_basic(self): def test_basic_metrics(self): self.perform_request(self.URL) - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) duration_data_point = metrics[0].data.data_points[0] self.assertEqual(duration_data_point.count, 1) @@ -289,7 +291,7 @@ def test_nonstandard_http_method(self): span, opentelemetry.instrumentation.httpx ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) duration_data_point = metrics[0].data.data_points[0] self.assertEqual(duration_data_point.count, 1) @@ -331,7 +333,7 @@ def test_nonstandard_http_method_new_semconv(self): span, opentelemetry.instrumentation.httpx ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) duration_data_point = metrics[0].data.data_points[0] self.assertEqual(duration_data_point.count, 1) @@ -391,7 +393,7 @@ def test_basic_new_semconv(self): ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) duration_data_point = metrics[0].data.data_points[0] self.assertEqual(duration_data_point.count, 1) @@ -448,7 +450,7 @@ def test_basic_both_semconv(self): ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 2) # Old convention self.assertEqual( @@ -497,7 +499,7 @@ def test_not_foundbasic(self): trace.StatusCode.ERROR, ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) duration_data_point = metrics[0].data.data_points[0] self.assertEqual( @@ -525,7 +527,7 @@ def test_not_foundbasic_new_semconv(self): trace.StatusCode.ERROR, ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) duration_data_point = metrics[0].data.data_points[0] self.assertEqual( @@ -556,7 +558,7 @@ def test_not_foundbasic_both_semconv(self): trace.StatusCode.ERROR, ) # Validate metrics - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 2) # Old convention self.assertEqual( diff --git a/instrumentation/opentelemetry-instrumentation-pyramid/tests/test_automatic.py b/instrumentation/opentelemetry-instrumentation-pyramid/tests/test_automatic.py index 8754381dc2..8686e4c527 100644 --- a/instrumentation/opentelemetry-instrumentation-pyramid/tests/test_automatic.py +++ b/instrumentation/opentelemetry-instrumentation-pyramid/tests/test_automatic.py @@ -264,10 +264,8 @@ def test_basic_metric_success(self): "http.flavor": "1.1", "http.server_name": "localhost", } - metrics_list = self.memory_metrics_reader.get_metrics_data() - for metric in ( - metrics_list.resource_metrics[0].scope_metrics[0].metrics - ): + metrics = self.get_sorted_metrics(SCOPE) + for metric in metrics: for point in list(metric.data.data_points): if isinstance(point, HistogramDataPoint): self.assertDictEqual( @@ -289,10 +287,8 @@ def test_metric_uninstrument(self): self.config = Configurator() self._common_initialization(self.config) self.client.get("/hello/756") - metrics_list = self.memory_metrics_reader.get_metrics_data() - for metric in ( - metrics_list.resource_metrics[0].scope_metrics[0].metrics - ): + metrics = self.get_sorted_metrics(SCOPE) + for metric in metrics: for point in list(metric.data.data_points): if isinstance(point, HistogramDataPoint): self.assertEqual(point.count, 1) @@ -471,17 +467,15 @@ def tearDown(self): PyramidInstrumentor().uninstrument() def _verify_metric_names( - self, metrics_list, expected_names, not_expected_names=None + self, metrics, expected_names, not_expected_names=None ): metric_names = [] - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - metric_names.append(metric.name) - if expected_names: - self.assertIn(metric.name, expected_names) - if not_expected_names: - self.assertNotIn(metric.name, not_expected_names) + for metric in metrics: + metric_names.append(metric.name) + if expected_names: + self.assertIn(metric.name, expected_names) + if not_expected_names: + self.assertNotIn(metric.name, not_expected_names) return metric_names def _verify_duration_point(self, point): @@ -496,11 +490,9 @@ def _verify_metric_duration(self, metric): if isinstance(point, HistogramDataPoint): self._verify_duration_point(point) - def _verify_duration_attributes(self, metrics_list): - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - self._verify_metric_duration(metric) + def _verify_duration_attributes(self, metrics): + for metric in metrics: + self._verify_metric_duration(metric) class TestSemConvDefault(_SemConvTestBase): @@ -537,27 +529,23 @@ def test_basic_old_semconv(self): def test_metrics_old_semconv(self): self.client.get("/hello/123") - metrics_list = self.memory_metrics_reader.get_metrics_data() - self.assertTrue(len(metrics_list.resource_metrics) == 1) + metrics = self.get_sorted_metrics(SCOPE) + self.assertEqual(len(metrics), 2) expected_metrics = [ HTTP_SERVER_ACTIVE_REQUESTS, MetricInstruments.HTTP_SERVER_DURATION, ] self._verify_metric_names( - metrics_list, expected_metrics, [HTTP_SERVER_REQUEST_DURATION] + metrics, expected_metrics, [HTTP_SERVER_REQUEST_DURATION] ) - for resource_metric in metrics_list.resource_metrics: - for scope_metric in resource_metric.scope_metrics: - for metric in scope_metric.metrics: - for point in metric.data.data_points: - if isinstance(point, HistogramDataPoint): - self.assertIn("http.method", point.attributes) - self.assertIn("http.scheme", point.attributes) - self.assertNotIn( - HTTP_REQUEST_METHOD, point.attributes - ) + for metric in metrics: + for point in metric.data.data_points: + if isinstance(point, HistogramDataPoint): + self.assertIn("http.method", point.attributes) + self.assertIn("http.scheme", point.attributes) + self.assertNotIn(HTTP_REQUEST_METHOD, point.attributes) class TestSemConvNew(_SemConvTestBase): @@ -603,21 +591,19 @@ def test_basic_new_semconv(self): def test_metrics_new_semconv(self): self.client.get("/hello/456") - metrics_list = self.memory_metrics_reader.get_metrics_data() - self.assertTrue(len(metrics_list.resource_metrics) == 1) + metrics = self.get_sorted_metrics(SCOPE) + self.assertEqual(len(metrics), 2) expected_metrics = [ HTTP_SERVER_REQUEST_DURATION, HTTP_SERVER_ACTIVE_REQUESTS, ] - metric_names = self._verify_metric_names( - metrics_list, expected_metrics - ) + metric_names = self._verify_metric_names(metrics, expected_metrics) self.assertIn(HTTP_SERVER_REQUEST_DURATION, metric_names) self.assertIn(HTTP_SERVER_ACTIVE_REQUESTS, metric_names) - self._verify_duration_attributes(metrics_list) + self._verify_duration_attributes(metrics) class TestSemConvDup(_SemConvTestBase): @@ -658,15 +644,15 @@ def test_basic_both_semconv(self): def test_metrics_both_semconv(self): self.client.get("/hello/789") - metrics_list = self.memory_metrics_reader.get_metrics_data() - self.assertTrue(len(metrics_list.resource_metrics) == 1) + metrics = self.get_sorted_metrics(SCOPE) + self.assertEqual(len(metrics), 3) expected_metrics = [ MetricInstruments.HTTP_SERVER_DURATION, HTTP_SERVER_REQUEST_DURATION, HTTP_SERVER_ACTIVE_REQUESTS, ] - metric_names = self._verify_metric_names(metrics_list, None) + metric_names = self._verify_metric_names(metrics, None) for metric_name in expected_metrics: self.assertIn(metric_name, metric_names) diff --git a/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py b/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py index 8d89959428..dd2f98df29 100644 --- a/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py +++ b/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py @@ -19,6 +19,9 @@ from opentelemetry.test.test_base import TestBase +SCOPE = "opentelemetry.instrumentation.sqlalchemy" + + class TestSqlalchemyMetricsInstrumentation(TestBase): def setUp(self): super().setUp() @@ -31,7 +34,7 @@ def tearDown(self): SQLAlchemyInstrumentor().uninstrument() def assert_pool_idle_used_expected(self, pool_name, idle, used): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 1) self.assert_metric_expected( metrics[0], @@ -56,7 +59,7 @@ def test_metrics_one_connection(self): pool_logging_name=pool_name, ) - self.assertIsNone(self.memory_metrics_reader.get_metrics_data()) + self.assertEqual(len(self.get_sorted_metrics(SCOPE)), 0) with engine.connect(): self.assert_pool_idle_used_expected( @@ -77,7 +80,7 @@ def test_metrics_without_pool_name(self): pool_logging_name=pool_name, ) - self.assertIsNone(self.memory_metrics_reader.get_metrics_data()) + self.assertEqual(len(self.get_sorted_metrics(SCOPE)), 0) with engine.connect(): self.assert_pool_idle_used_expected( @@ -98,7 +101,7 @@ def test_metrics_two_connections(self): pool_logging_name=pool_name, ) - self.assertIsNone(self.memory_metrics_reader.get_metrics_data()) + self.assertEqual(len(self.get_sorted_metrics(SCOPE)), 0) with engine.connect(): with engine.connect(): @@ -119,7 +122,7 @@ def test_metrics_connections(self): pool_logging_name=pool_name, ) - self.assertIsNone(self.memory_metrics_reader.get_metrics_data()) + self.assertEqual(len(self.get_sorted_metrics(SCOPE)), 0) with engine.connect(): with engine.connect(): @@ -152,4 +155,4 @@ def test_metric_uninstrument(self): engine.connect() - self.assertIsNone(self.memory_metrics_reader.get_metrics_data()) + self.assertEqual(len(self.get_sorted_metrics(SCOPE)), 0) diff --git a/instrumentation/opentelemetry-instrumentation-tornado/tests/test_metrics_instrumentation.py b/instrumentation/opentelemetry-instrumentation-tornado/tests/test_metrics_instrumentation.py index e6ac4ed003..5c649622dd 100644 --- a/instrumentation/opentelemetry-instrumentation-tornado/tests/test_metrics_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-tornado/tests/test_metrics_instrumentation.py @@ -57,6 +57,8 @@ ) from .tornado_test_app import make_app +SCOPE = "opentelemetry.instrumentation.tornado" + class TestTornadoMetricsInstrumentation(TornadoTest): # Return Sequence with one histogram @@ -72,7 +74,7 @@ def test_basic_metrics(self): response = self.fetch("/") client_duration_estimated = (default_timer() - start_time) * 1000 - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 7) ( @@ -209,7 +211,7 @@ async def test_metrics_concurrent_requests(self): req2 = self.http_client.fetch(self.get_url("/async")) await asyncio.gather(req1, req2) - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 7) client_duration = metrics[0] @@ -277,7 +279,7 @@ def test_metric_uninstrument(self): TornadoInstrumentor().uninstrument() self.fetch("/") - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 7) for metric in metrics: @@ -290,7 +292,7 @@ def test_excluded(path): self.fetch(path) # Verify no server metrics written (only client ones should exist) - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) for metric in metrics: self.assertTrue("http.server" not in metric.name, metric) self.assertEqual(len(metrics), 3, metrics) @@ -378,21 +380,18 @@ def test_server_metrics_old_semconv(self): """Test that server metrics use old semantic conventions by default.""" response = self.fetch("/") self.assertEqual(response.code, 201) - metrics = self.memory_metrics_reader.get_metrics_data() - resource_metrics = metrics.resource_metrics + metrics = self.get_sorted_metrics(SCOPE) # Find old semconv metrics old_duration_found = False new_duration_found = False - for rm in resource_metrics: - for sm in rm.scope_metrics: - for metric in sm.metrics: - if metric.name == "http.server.duration": - old_duration_found = True - # Verify unit is milliseconds for old semconv - self.assertEqual(metric.unit, "ms") - elif metric.name == "http.server.request.duration": - new_duration_found = True + for metric in metrics: + if metric.name == "http.server.duration": + old_duration_found = True + # Verify unit is milliseconds for old semconv + self.assertEqual(metric.unit, "ms") + elif metric.name == "http.server.request.duration": + new_duration_found = True self.assertTrue(old_duration_found, "Old semconv metric not found") self.assertFalse( new_duration_found, "New semconv metric should not be present" @@ -456,21 +455,18 @@ def test_server_metrics_new_semconv(self): """Test that server metrics use new semantic conventions in http mode.""" response = self.fetch("/") self.assertEqual(response.code, 201) - metrics = self.memory_metrics_reader.get_metrics_data() - resource_metrics = metrics.resource_metrics + metrics = self.get_sorted_metrics(SCOPE) # Find new semconv metrics old_duration_found = False new_duration_found = False - for rm in resource_metrics: - for sm in rm.scope_metrics: - for metric in sm.metrics: - if metric.name == "http.server.duration": - old_duration_found = True - elif metric.name == "http.server.request.duration": - new_duration_found = True - # Verify unit is seconds for new semconv - self.assertEqual(metric.unit, "s") + for metric in metrics: + if metric.name == "http.server.duration": + old_duration_found = True + elif metric.name == "http.server.request.duration": + new_duration_found = True + # Verify unit is seconds for new semconv + self.assertEqual(metric.unit, "s") self.assertFalse( old_duration_found, "Old semconv metric should not be present" ) @@ -580,21 +576,18 @@ def test_client_span_attributes_both_semconv(self): def test_server_metrics_both_semconv(self): response = self.fetch("/") self.assertEqual(response.code, 201) - metrics = self.memory_metrics_reader.get_metrics_data() - resource_metrics = metrics.resource_metrics + metrics = self.get_sorted_metrics(SCOPE) # Find both old and new semconv metrics old_duration_found = False new_duration_found = False - for rm in resource_metrics: - for sm in rm.scope_metrics: - for metric in sm.metrics: - if metric.name == "http.server.duration": - old_duration_found = True - self.assertEqual(metric.unit, "ms") - elif metric.name == "http.server.request.duration": - new_duration_found = True - self.assertEqual(metric.unit, "s") + for metric in metrics: + if metric.name == "http.server.duration": + old_duration_found = True + self.assertEqual(metric.unit, "ms") + elif metric.name == "http.server.request.duration": + new_duration_found = True + self.assertEqual(metric.unit, "s") self.assertTrue(old_duration_found, "Old semconv metric not found") self.assertTrue(new_duration_found, "New semconv metric not found") @@ -623,21 +616,18 @@ def test_url_query_attribute_both_semconv(self): def test_client_metrics_both_semconv(self): response = self.fetch("/") self.assertEqual(response.code, 201) - metrics = self.memory_metrics_reader.get_metrics_data() - resource_metrics = metrics.resource_metrics + metrics = self.get_sorted_metrics(SCOPE) # Find both old and new semconv metrics old_duration_found = False new_duration_found = False - for rm in resource_metrics: - for sm in rm.scope_metrics: - for metric in sm.metrics: - if metric.name == "http.client.duration": - old_duration_found = True - self.assertEqual(metric.unit, "ms") - elif metric.name == "http.client.request.duration": - new_duration_found = True - self.assertEqual(metric.unit, "s") + for metric in metrics: + if metric.name == "http.client.duration": + old_duration_found = True + self.assertEqual(metric.unit, "ms") + elif metric.name == "http.client.request.duration": + new_duration_found = True + self.assertEqual(metric.unit, "s") self.assertTrue( old_duration_found, "Old semconv client metric not found" ) diff --git a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py index ee9dd1db8e..fec92db120 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py @@ -41,6 +41,9 @@ from opentelemetry.test.test_base import TestBase +SCOPE = "opentelemetry.instrumentation.urllib" + + class TestUrllibMetricsInstrumentation(TestBase): URL = "http://mock/status/200" URL_POST = "http://mock/post" @@ -96,7 +99,7 @@ def test_basic_metric(self): with request.urlopen(self.URL) as result: client_duration_estimated = (default_timer() - start_time) * 1000 - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 3) ( @@ -162,7 +165,7 @@ def test_basic_metric_new_semconv(self): with request.urlopen(self.URL) as result: duration_s = default_timer() - start_time - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 3) ( @@ -227,7 +230,7 @@ def test_basic_metric_both_semconv(self): duration_s = default_timer() - start_time duration = max(round(duration_s * 1000), 0) - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 6) ( @@ -349,7 +352,7 @@ def test_basic_metric_request_not_empty(self): with request.urlopen(self.URL_POST, data=data_encoded) as result: client_duration_estimated = (default_timer() - start_time) * 1000 - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 3) ( @@ -414,7 +417,7 @@ def test_basic_metric_request_not_empty(self): ) def test_metric_uninstrument(self): with request.urlopen(self.URL): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 3) ( @@ -438,7 +441,7 @@ def test_metric_uninstrument(self): ) with request.urlopen(self.URL): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 3) @@ -464,7 +467,7 @@ def test_metric_uninstrument(self): URLLibInstrumentor().uninstrument() with request.urlopen(self.URL): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), 3) From d6b916049d9c1c7a3664a15a5cfbef722265dbd0 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 5 Feb 2026 11:15:51 +0900 Subject: [PATCH 2/3] More --- .../tests/test_aiohttp_client_integration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py b/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py index 2031cef9e6..3c6a86b157 100644 --- a/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py +++ b/instrumentation/opentelemetry-instrumentation-aiohttp-client/tests/test_aiohttp_client_integration.py @@ -1315,7 +1315,7 @@ def _assert_spans(self, num_spans: int): return finished_spans def _assert_metrics(self, num_metrics: int = 1): - metrics = self.get_sorted_metrics() + metrics = self.get_sorted_metrics(SCOPE) self.assertEqual(len(metrics), num_metrics) return metrics From 3c8fc60c023b342beb3d07c10982ad10f04bd8b0 Mon Sep 17 00:00:00 2001 From: Anuraag Agrawal Date: Thu, 5 Feb 2026 11:19:20 +0900 Subject: [PATCH 3/3] Lint --- .../tests/test_sqlalchemy_metrics.py | 1 - .../tests/test_metrics_instrumentation.py | 1 - 2 files changed, 2 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py b/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py index dd2f98df29..d8ccaeaf17 100644 --- a/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py +++ b/instrumentation/opentelemetry-instrumentation-sqlalchemy/tests/test_sqlalchemy_metrics.py @@ -18,7 +18,6 @@ from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor from opentelemetry.test.test_base import TestBase - SCOPE = "opentelemetry.instrumentation.sqlalchemy" diff --git a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py index fec92db120..65b2b78ccf 100644 --- a/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py +++ b/instrumentation/opentelemetry-instrumentation-urllib/tests/test_metrics_instrumentation.py @@ -40,7 +40,6 @@ ) from opentelemetry.test.test_base import TestBase - SCOPE = "opentelemetry.instrumentation.urllib"