diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/span_builder.py b/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/span_builder.py index b73afa62b..c62b1ea9b 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/span_builder.py +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/span_builder.py @@ -47,8 +47,13 @@ class SpanBuilder: self._attributes[SpanAttributes.MESSAGING_DESTINATION] = destination def set_channel(self, channel: AbstractChannel): - connection = channel.connection - if getattr(connection, "connection", None): + if hasattr(channel, "_connection"): + # aio_rmq 9.1 and above removed the connection attribute from the abstract listings + connection = channel._connection + else: + # aio_rmq 9.0.5 and below + connection = channel.connection + if hasattr(connection, "connection"): # aio_rmq 7 url = connection.connection.url else: @@ -57,7 +62,7 @@ class SpanBuilder: self._attributes.update( { SpanAttributes.NET_PEER_NAME: url.host, - SpanAttributes.NET_PEER_PORT: url.port, + SpanAttributes.NET_PEER_PORT: url.port or 5672, } ) diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt b/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt index 3250c9394..7e1aa15fa 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt @@ -1,5 +1,5 @@ -aio-pika==9.4.0 -aiormq==6.8.0 +aio-pika==9.0.5 +aiormq==6.7.1 asgiref==3.7.2 attrs==23.2.0 Deprecated==1.2.14 @@ -8,7 +8,7 @@ importlib-metadata==6.11.0 iniconfig==2.0.0 multidict==6.0.5 packaging==23.2 -pamqp==3.3.0 +pamqp==3.2.1 pluggy==1.4.0 py==1.11.0 py-cpuinfo==9.0.0 diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-3.txt b/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-3.txt new file mode 100644 index 000000000..65c2ff8f0 --- /dev/null +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-3.txt @@ -0,0 +1,23 @@ +aio-pika==9.4.1 +aiormq==6.8.0 +asgiref==3.7.2 +attrs==23.2.0 +Deprecated==1.2.14 +idna==3.6 +importlib-metadata==6.11.0 +iniconfig==2.0.0 +multidict==6.0.5 +packaging==23.2 +pamqp==3.3.0 +pluggy==1.4.0 +py==1.11.0 +py-cpuinfo==9.0.0 +pytest==7.1.3 +pytest-benchmark==4.0.0 +tomli==2.0.1 +typing_extensions==4.9.0 +wrapt==1.16.0 +yarl==1.9.4 +zipp==3.17.0 +-e opentelemetry-instrumentation +-e instrumentation/opentelemetry-instrumentation-aio-pika diff --git a/tox.ini b/tox.ini index e48cc7bfe..c9d777260 100644 --- a/tox.ini +++ b/tox.ini @@ -265,11 +265,12 @@ envlist = ; opentelemetry-instrumentation-aio-pika ; The numbers at the end of the environment names ; below mean these dependencies are being used: - ; 0: aio_pika~=7.2.0 - ; 1: aio_pika>=8.0.0,<9.0.0 - ; 2: aio_pika>=9.0.0,<10.0.0 - py3{8,9,10,11}-test-instrumentation-aio-pika-{0,1,2} - pypy3-test-instrumentation-aio-pika-{0,1,2} + ; 0: aio_pika==7.2.0 + ; 1: aio_pika==8.3.0 + ; 2: aio_pika==9.0.5 + ; 3: aio_pika==9.4.1 + py3{8,9,10,11}-test-instrumentation-aio-pika-{0,1,2,3} + pypy3-test-instrumentation-aio-pika-{0,1,2,3} ; opentelemetry-instrumentation-kafka-python py3{8,9,10,11}-test-instrumentation-kafka-python @@ -338,6 +339,7 @@ commands_pre = aio-pika-0: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-0.txt aio-pika-1: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-1.txt aio-pika-2: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt + aio-pika-3: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-3.txt kafka-python: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-kafka-python/test-requirements.txt @@ -428,8 +430,6 @@ commands_pre = logging: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-logging/test-requirements.txt - aio-pika-{0,1,2}: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika/test-requirements-2.txt - aiohttp-client: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client/test-requirements.txt aiohttp-server: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-server/test-requirements.txt