From b64c13c7506866ae3f2698a3bb515883294e17f6 Mon Sep 17 00:00:00 2001 From: Ran Nozik Date: Sun, 29 Jan 2023 08:37:30 +0200 Subject: [PATCH 1/4] support aio pika latest versions --- docs-requirements.txt | 2 +- instrumentation/README.md | 2 +- .../opentelemetry-instrumentation-aio-pika/pyproject.toml | 2 +- .../src/opentelemetry/instrumentation/aio_pika/package.py | 2 +- .../tests/test_publish_decorator.py | 8 ++++++-- .../src/opentelemetry/instrumentation/bootstrap_gen.py | 2 +- 6 files changed, 11 insertions(+), 7 deletions(-) diff --git a/docs-requirements.txt b/docs-requirements.txt index 7fb89a9bda..adebd5fd08 100644 --- a/docs-requirements.txt +++ b/docs-requirements.txt @@ -18,7 +18,7 @@ pymemcache~=1.3 django>=2.2 # Required by instrumentation and exporter packages -aio_pika~=7.2.0 +aio_pika~=8.3.0 aiohttp~=3.0 aiopg>=0.13.0,<1.3.0 asyncpg>=0.12.0 diff --git a/instrumentation/README.md b/instrumentation/README.md index a269b09397..0fc7831541 100644 --- a/instrumentation/README.md +++ b/instrumentation/README.md @@ -1,7 +1,7 @@ | Instrumentation | Supported Packages | Metrics support | | --------------- | ------------------ | --------------- | -| [opentelemetry-instrumentation-aio-pika](./opentelemetry-instrumentation-aio-pika) | aio_pika ~= 7.2.0 | No +| [opentelemetry-instrumentation-aio-pika](./opentelemetry-instrumentation-aio-pika) | aio_pika ~= 8.3.0 | No | [opentelemetry-instrumentation-aiohttp-client](./opentelemetry-instrumentation-aiohttp-client) | aiohttp ~= 3.0 | No | [opentelemetry-instrumentation-aiopg](./opentelemetry-instrumentation-aiopg) | aiopg >= 0.13.0, < 2.0.0 | No | [opentelemetry-instrumentation-asgi](./opentelemetry-instrumentation-asgi) | asgiref ~= 3.0 | No diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml index 4511254a70..df4916c07f 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ [project.optional-dependencies] instruments = [ - "aio_pika ~= 7.2.0", + "aio_pika ~= 8.3.0", ] test = [ "opentelemetry-instrumentation-aio-pika[instruments]", diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/package.py b/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/package.py index 6c7ed74ea4..285e9f99cb 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/package.py +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/src/opentelemetry/instrumentation/aio_pika/package.py @@ -13,4 +13,4 @@ # limitations under the License. from typing import Collection -_instruments: Collection[str] = ("aio_pika ~= 7.2.0",) +_instruments: Collection[str] = ("aio_pika >= 7.2.0, < 9.0.0",) diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/tests/test_publish_decorator.py b/instrumentation/opentelemetry-instrumentation-aio-pika/tests/test_publish_decorator.py index 80dfa3182b..eae05cf243 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/tests/test_publish_decorator.py +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/tests/test_publish_decorator.py @@ -15,7 +15,8 @@ from typing import Type from unittest import TestCase, mock -from aio_pika import Exchange, RobustExchange +from aio_pika import Exchange, RobustExchange, __version__ +from packaging import version from opentelemetry.instrumentation.aio_pika.publish_decorator import ( PublishDecorator, @@ -54,7 +55,10 @@ def setUp(self): asyncio.set_event_loop(self.loop) def test_get_publish_span(self): - exchange = Exchange(CONNECTION, CHANNEL, EXCHANGE_NAME) + if version.parse(__version__) >= version.parse("8.0.0"): + exchange = Exchange(CHANNEL, EXCHANGE_NAME) + else: + exchange = Exchange(CONNECTION, CHANNEL, EXCHANGE_NAME) tracer = mock.MagicMock() PublishDecorator(tracer, exchange)._get_publish_span( MESSAGE, ROUTING_KEY diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py index 36fda70ab1..81623aab75 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py @@ -17,7 +17,7 @@ libraries = { "aio_pika": { - "library": "aio_pika ~= 7.2.0", + "library": "aio_pika ~= 8.3.0", "instrumentation": "opentelemetry-instrumentation-aio-pika==0.37b0.dev", }, "aiohttp": { From 2b07303e0fdd95f1cee7452b0729f991613f891d Mon Sep 17 00:00:00 2001 From: Ran Nozik Date: Sun, 29 Jan 2023 15:23:11 +0200 Subject: [PATCH 2/4] run on multiple versions --- instrumentation/README.md | 2 +- tox.ini | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/instrumentation/README.md b/instrumentation/README.md index 0fc7831541..b1482a0227 100644 --- a/instrumentation/README.md +++ b/instrumentation/README.md @@ -1,7 +1,7 @@ | Instrumentation | Supported Packages | Metrics support | | --------------- | ------------------ | --------------- | -| [opentelemetry-instrumentation-aio-pika](./opentelemetry-instrumentation-aio-pika) | aio_pika ~= 8.3.0 | No +| [opentelemetry-instrumentation-aio-pika](./opentelemetry-instrumentation-aio-pika) | aio_pika >= 7.2.0, < 9.0.0 | No | [opentelemetry-instrumentation-aiohttp-client](./opentelemetry-instrumentation-aiohttp-client) | aiohttp ~= 3.0 | No | [opentelemetry-instrumentation-aiopg](./opentelemetry-instrumentation-aiopg) | aiopg >= 0.13.0, < 2.0.0 | No | [opentelemetry-instrumentation-asgi](./opentelemetry-instrumentation-asgi) | asgiref ~= 3.0 | No diff --git a/tox.ini b/tox.ini index ef058761e6..860eea252e 100644 --- a/tox.ini +++ b/tox.ini @@ -18,8 +18,9 @@ envlist = py3{7,8,9,10,11}-test-opentelemetry-instrumentation pypy3-test-opentelemetry-instrumentation - py3{7,8,9,10,11}-test-instrumentation-aio-pika - pypy3-test-instrumentation-aio-pika + ; opentelemetry-instrumentation-aio-pika + py3{7,8,9,10,11}-test-instrumentation-aio-pika{7,8} + pypy3-test-instrumentation-aio-pika{7,8} ; opentelemetry-instrumentation-aiohttp-client py3{7,8,9,10,11}-test-instrumentation-aiohttp-client @@ -250,6 +251,8 @@ deps = sqlalchemy14: sqlalchemy~=1.4 pika0: pika>=0.12.0,<1.0.0 pika1: pika>=1.0.0 + aio-pika7: aio-pika>=7.2.0,<8.0.0 + aio-pika8: aio-pika>=8.0.0,<9.0.0 pymemcache135: pymemcache ==1.3.5 pymemcache200: pymemcache >2.0.0,<3.0.0 pymemcache300: pymemcache >3.0.0,<3.4.2 @@ -271,7 +274,7 @@ setenv = changedir = test-distro: opentelemetry-distro/tests test-opentelemetry-instrumentation: opentelemetry-instrumentation/tests - test-instrumentation-aio-pika: instrumentation/opentelemetry-instrumentation-aio-pika/tests + test-instrumentation-aio-pika{7,8}: instrumentation/opentelemetry-instrumentation-aio-pika/tests test-instrumentation-aiohttp-client: instrumentation/opentelemetry-instrumentation-aiohttp-client/tests test-instrumentation-aiopg: instrumentation/opentelemetry-instrumentation-aiopg/tests test-instrumentation-asgi: instrumentation/opentelemetry-instrumentation-asgi/tests @@ -404,7 +407,7 @@ commands_pre = logging: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-logging[test] - aio-pika: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test] + aio-pika{7,8}: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aio-pika[test] aiohttp-client: pip install {toxinidir}/instrumentation/opentelemetry-instrumentation-aiohttp-client[test] From f082609efb333d05746e8c83aadc046793d7918e Mon Sep 17 00:00:00 2001 From: Ran Nozik Date: Sun, 29 Jan 2023 15:40:46 +0200 Subject: [PATCH 3/4] update docs --- docs-requirements.txt | 2 +- .../opentelemetry-instrumentation-aio-pika/pyproject.toml | 2 +- .../src/opentelemetry/instrumentation/bootstrap_gen.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs-requirements.txt b/docs-requirements.txt index adebd5fd08..fb2d3929c7 100644 --- a/docs-requirements.txt +++ b/docs-requirements.txt @@ -18,7 +18,7 @@ pymemcache~=1.3 django>=2.2 # Required by instrumentation and exporter packages -aio_pika~=8.3.0 +aio_pika>=7.2.0,<9.0.0 aiohttp~=3.0 aiopg>=0.13.0,<1.3.0 asyncpg>=0.12.0 diff --git a/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml b/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml index df4916c07f..994642e22a 100644 --- a/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml +++ b/instrumentation/opentelemetry-instrumentation-aio-pika/pyproject.toml @@ -31,7 +31,7 @@ dependencies = [ [project.optional-dependencies] instruments = [ - "aio_pika ~= 8.3.0", + "aio_pika >= 7.2.0, < 9.0.0", ] test = [ "opentelemetry-instrumentation-aio-pika[instruments]", diff --git a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py index 81623aab75..20c5a0b725 100644 --- a/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py +++ b/opentelemetry-instrumentation/src/opentelemetry/instrumentation/bootstrap_gen.py @@ -17,7 +17,7 @@ libraries = { "aio_pika": { - "library": "aio_pika ~= 8.3.0", + "library": "aio_pika >= 7.2.0, < 9.0.0", "instrumentation": "opentelemetry-instrumentation-aio-pika==0.37b0.dev", }, "aiohttp": { From 72ff816abab90ca3a604be5b2822d7531c48ba5a Mon Sep 17 00:00:00 2001 From: Ran Nozik Date: Sun, 29 Jan 2023 15:44:30 +0200 Subject: [PATCH 4/4] update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2c32ad4a8..157bd6bc05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- Support aio-pika v8 + ([#1605](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/1605)) + ### Added - Add metric instrumentation for urllib