From 242bf9b30244f28b7788db217d661895ecebe5c0 Mon Sep 17 00:00:00 2001 From: Caterina Andreu Date: Thu, 15 May 2025 10:37:48 -0700 Subject: [PATCH] Refactor: replace use of SpanAttributes --- .../tests/test_aiohttp_client_integration.py | 84 +++++++++---------- 1 file changed, 40 insertions(+), 44 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 62c837f88d..98351d8339 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 @@ -36,6 +36,11 @@ AioHttpClientInstrumentor, ) from opentelemetry.instrumentation.utils import suppress_instrumentation +from opentelemetry.semconv._incubating.attributes.http_attributes import ( + HTTP_METHOD, + HTTP_STATUS_CODE, + HTTP_URL, +) from opentelemetry.semconv.attributes.error_attributes import ERROR_TYPE from opentelemetry.semconv.attributes.http_attributes import ( HTTP_REQUEST_METHOD, @@ -43,7 +48,6 @@ HTTP_RESPONSE_STATUS_CODE, ) from opentelemetry.semconv.attributes.url_attributes import URL_FULL -from opentelemetry.semconv.trace import SpanAttributes from opentelemetry.test.test_base import TestBase from opentelemetry.trace import Span, StatusCode from opentelemetry.util._importlib_metadata import entry_points @@ -136,9 +140,9 @@ def test_status_codes(self): ) url = f"http://{host}:{port}/{path}" attributes = { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: url, - SpanAttributes.HTTP_STATUS_CODE: status_code, + HTTP_METHOD: "GET", + HTTP_URL: url, + HTTP_STATUS_CODE: status_code, } spans = [("GET", (span_status, None), attributes)] self.assert_spans(spans) @@ -181,11 +185,11 @@ def test_status_codes_both_semconv(self): url = f"http://{host}:{port}/{path}" attributes = { HTTP_REQUEST_METHOD: "GET", - SpanAttributes.HTTP_METHOD: "GET", + HTTP_METHOD: "GET", URL_FULL: url, - SpanAttributes.HTTP_URL: url, + HTTP_URL: url, HTTP_RESPONSE_STATUS_CODE: status_code, - SpanAttributes.HTTP_STATUS_CODE: status_code, + HTTP_STATUS_CODE: status_code, } if status_code >= 400: attributes[ERROR_TYPE] = str(status_code.value) @@ -292,16 +296,12 @@ def response_hook( (span.status.status_code, span.status.description), (StatusCode.UNSET, None), ) + self.assertEqual(span.attributes[HTTP_METHOD], method) self.assertEqual( - span.attributes[SpanAttributes.HTTP_METHOD], method - ) - self.assertEqual( - span.attributes[SpanAttributes.HTTP_URL], + span.attributes[HTTP_URL], f"http://{host}:{port}{path}", ) - self.assertEqual( - span.attributes[SpanAttributes.HTTP_STATUS_CODE], HTTPStatus.OK - ) + self.assertEqual(span.attributes[HTTP_STATUS_CODE], HTTPStatus.OK) self.assertIn("response_hook_attr", span.attributes) self.assertEqual(span.attributes["response_hook_attr"], "value") self.memory_exporter.clear() @@ -325,9 +325,9 @@ def strip_query_params(url: yarl.URL) -> str: "GET", (StatusCode.UNSET, None), { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: f"http://{host}:{port}/some/path", - SpanAttributes.HTTP_STATUS_CODE: int(HTTPStatus.OK), + HTTP_METHOD: "GET", + HTTP_URL: f"http://{host}:{port}/some/path", + HTTP_STATUS_CODE: int(HTTPStatus.OK), }, ) ] @@ -359,8 +359,8 @@ async def do_request(url): "GET", (expected_status, "ClientConnectorError"), { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: url, + HTTP_METHOD: "GET", + HTTP_URL: url, }, ) ] @@ -385,8 +385,8 @@ async def request_handler(request): "GET", (StatusCode.ERROR, "ServerDisconnectedError"), { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: f"http://{host}:{port}/test", + HTTP_METHOD: "GET", + HTTP_URL: f"http://{host}:{port}/test", }, ) ] @@ -443,8 +443,8 @@ async def request_handler(request): HTTP_REQUEST_METHOD: "GET", URL_FULL: f"http://{host}:{port}/test", ERROR_TYPE: "ServerDisconnectedError", - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: f"http://{host}:{port}/test", + HTTP_METHOD: "GET", + HTTP_URL: f"http://{host}:{port}/test", }, ) ] @@ -469,8 +469,8 @@ async def request_handler(request): "GET", (StatusCode.ERROR, "SocketTimeoutError"), { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: f"http://{host}:{port}/test_timeout", + HTTP_METHOD: "GET", + HTTP_URL: f"http://{host}:{port}/test_timeout", }, ) ] @@ -496,8 +496,8 @@ async def request_handler(request): "GET", (StatusCode.ERROR, "TooManyRedirects"), { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: f"http://{host}:{port}/test_too_many_redirects", + HTTP_METHOD: "GET", + HTTP_URL: f"http://{host}:{port}/test_too_many_redirects", }, ) ] @@ -532,11 +532,9 @@ async def do_request(url): "HTTP", (StatusCode.ERROR, None), { - SpanAttributes.HTTP_METHOD: "_OTHER", - SpanAttributes.HTTP_URL: url, - SpanAttributes.HTTP_STATUS_CODE: int( - HTTPStatus.METHOD_NOT_ALLOWED - ), + HTTP_METHOD: "_OTHER", + HTTP_URL: url, + HTTP_STATUS_CODE: int(HTTPStatus.METHOD_NOT_ALLOWED), }, ) ] @@ -619,11 +617,9 @@ async def do_request(url): "GET", (StatusCode.UNSET, None), { - SpanAttributes.HTTP_METHOD: "GET", - SpanAttributes.HTTP_URL: ( - "http://localhost:5000/status/200" - ), - SpanAttributes.HTTP_STATUS_CODE: int(HTTPStatus.OK), + HTTP_METHOD: "GET", + HTTP_URL: ("http://localhost:5000/status/200"), + HTTP_STATUS_CODE: int(HTTPStatus.OK), }, ) ] @@ -671,12 +667,12 @@ def test_instrument(self): ) span = self.assert_spans(1) self.assertEqual("GET", span.name) - self.assertEqual("GET", span.attributes[SpanAttributes.HTTP_METHOD]) + self.assertEqual("GET", span.attributes[HTTP_METHOD]) self.assertEqual( f"http://{host}:{port}/test-path", - span.attributes[SpanAttributes.HTTP_URL], + span.attributes[HTTP_URL], ) - self.assertEqual(200, span.attributes[SpanAttributes.HTTP_STATUS_CODE]) + self.assertEqual(200, span.attributes[HTTP_STATUS_CODE]) def test_instrument_new_semconv(self): AioHttpClientInstrumentor().uninstrument() @@ -708,11 +704,11 @@ def test_instrument_both_semconv(self): url = f"http://{host}:{port}/test-path" attributes = { HTTP_REQUEST_METHOD: "GET", - SpanAttributes.HTTP_METHOD: "GET", + HTTP_METHOD: "GET", URL_FULL: url, - SpanAttributes.HTTP_URL: url, + HTTP_URL: url, HTTP_RESPONSE_STATUS_CODE: 200, - SpanAttributes.HTTP_STATUS_CODE: 200, + HTTP_STATUS_CODE: 200, } span = self.assert_spans(1) self.assertEqual("GET", span.name) @@ -852,7 +848,7 @@ def strip_query_params(url: yarl.URL) -> str: span = self.assert_spans(1) self.assertEqual( f"http://{host}:{port}/test-path", - span.attributes[SpanAttributes.HTTP_URL], + span.attributes[HTTP_URL], ) def test_hooks(self):