From 9200bffa536dec11e885dce6ec0540f3a4c58eaf Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:24:49 +0000 Subject: [PATCH 01/13] added conditional calling of `unary_unary` etc functions in `_InterceptorChannel` --- .../grpc/grpcext/_interceptor.py | 54 +++++++++++++------ 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py index 53ee46a20d..e09b69291a 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py +++ b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py @@ -23,6 +23,8 @@ import grpc from opentelemetry.instrumentation.grpc import grpcext +import pkg_resources + class _UnaryClientInfo( @@ -272,11 +274,16 @@ def unsubscribe(self, *args, **kwargs): self._channel.unsubscribe(*args, **kwargs) def unary_unary( - self, method, request_serializer=None, response_deserializer=None + self, method, request_serializer=None, response_deserializer=None, _registered_method=False ): - base_callable = self._channel.unary_unary( - method, request_serializer, response_deserializer - ) + if _registered_method: + base_callable = self._channel.unary_unary( + method, request_serializer, response_deserializer, _registered_method + ) + else: + base_callable = self._channel.unary_unary( + method, request_serializer, response_deserializer + ) if isinstance(self._interceptor, grpcext.UnaryClientInterceptor): return _InterceptorUnaryUnaryMultiCallable( method, base_callable, self._interceptor @@ -284,11 +291,16 @@ def unary_unary( return base_callable def unary_stream( - self, method, request_serializer=None, response_deserializer=None + self, method, request_serializer=None, response_deserializer=None, _registered_method=False ): - base_callable = self._channel.unary_stream( - method, request_serializer, response_deserializer - ) + if _registered_method: + base_callable = self._channel.unary_stream( + method, request_serializer, response_deserializer, _registered_method + ) + else: + base_callable = self._channel.unary_stream( + method, request_serializer, response_deserializer + ) if isinstance(self._interceptor, grpcext.StreamClientInterceptor): return _InterceptorUnaryStreamMultiCallable( method, base_callable, self._interceptor @@ -296,11 +308,16 @@ def unary_stream( return base_callable def stream_unary( - self, method, request_serializer=None, response_deserializer=None + self, method, request_serializer=None, response_deserializer=None, _registered_method=False ): - base_callable = self._channel.stream_unary( - method, request_serializer, response_deserializer - ) + if _registered_method: + base_callable = self._channel.stream_unary( + method, request_serializer, response_deserializer + ) + else: + base_callable = self._channel.stream_unary( + method, request_serializer, response_deserializer + ) if isinstance(self._interceptor, grpcext.StreamClientInterceptor): return _InterceptorStreamUnaryMultiCallable( method, base_callable, self._interceptor @@ -308,11 +325,16 @@ def stream_unary( return base_callable def stream_stream( - self, method, request_serializer=None, response_deserializer=None + self, method, request_serializer=None, response_deserializer=None, _registered_method=False ): - base_callable = self._channel.stream_stream( - method, request_serializer, response_deserializer - ) + if _registered_method: + base_callable = self._channel.stream_stream( + method, request_serializer, response_deserializer + ) + else: + base_callable = self._channel.stream_stream( + method, request_serializer, response_deserializer + ) if isinstance(self._interceptor, grpcext.StreamClientInterceptor): return _InterceptorStreamStreamMultiCallable( method, base_callable, self._interceptor From 0f999de0c01142095c53e9b7825d3f7be493ee01 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Tue, 30 Apr 2024 19:53:08 +0000 Subject: [PATCH 02/13] black formatting --- .../grpc/grpcext/_interceptor.py | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py index e09b69291a..1b088a8168 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py +++ b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py @@ -23,8 +23,6 @@ import grpc from opentelemetry.instrumentation.grpc import grpcext -import pkg_resources - class _UnaryClientInfo( @@ -274,11 +272,18 @@ def unsubscribe(self, *args, **kwargs): self._channel.unsubscribe(*args, **kwargs) def unary_unary( - self, method, request_serializer=None, response_deserializer=None, _registered_method=False + self, + method, + request_serializer=None, + response_deserializer=None, + _registered_method=False, ): if _registered_method: base_callable = self._channel.unary_unary( - method, request_serializer, response_deserializer, _registered_method + method, + request_serializer, + response_deserializer, + _registered_method, ) else: base_callable = self._channel.unary_unary( @@ -291,11 +296,18 @@ def unary_unary( return base_callable def unary_stream( - self, method, request_serializer=None, response_deserializer=None, _registered_method=False + self, + method, + request_serializer=None, + response_deserializer=None, + _registered_method=False, ): if _registered_method: base_callable = self._channel.unary_stream( - method, request_serializer, response_deserializer, _registered_method + method, + request_serializer, + response_deserializer, + _registered_method, ) else: base_callable = self._channel.unary_stream( @@ -308,7 +320,11 @@ def unary_stream( return base_callable def stream_unary( - self, method, request_serializer=None, response_deserializer=None, _registered_method=False + self, + method, + request_serializer=None, + response_deserializer=None, + _registered_method=False, ): if _registered_method: base_callable = self._channel.stream_unary( @@ -325,7 +341,11 @@ def stream_unary( return base_callable def stream_stream( - self, method, request_serializer=None, response_deserializer=None, _registered_method=False + self, + method, + request_serializer=None, + response_deserializer=None, + _registered_method=False, ): if _registered_method: base_callable = self._channel.stream_stream( From 2c2c25d68b5803ee7daa886aa173e91965cfae43 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Fri, 3 May 2024 19:59:54 +0000 Subject: [PATCH 03/13] added multiple grpc requirements.txt files for testing grpcio<1.63.0 and grpcio>=1.63.0 versions --- ...quirements.txt => test-requirements-0.txt} | 0 .../test-requirements-1.txt | 20 +++++++++++++++++++ tox.ini | 12 ++++++++--- 3 files changed, 29 insertions(+), 3 deletions(-) rename instrumentation/opentelemetry-instrumentation-grpc/{test-requirements.txt => test-requirements-0.txt} (100%) create mode 100644 instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt diff --git a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements.txt b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt similarity index 100% rename from instrumentation/opentelemetry-instrumentation-grpc/test-requirements.txt rename to instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt diff --git a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt new file mode 100644 index 0000000000..d9fac3bab5 --- /dev/null +++ b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt @@ -0,0 +1,20 @@ +asgiref==3.7.2 +attrs==23.2.0 +Deprecated==1.2.14 +grpcio>=1.62.0 +importlib-metadata==6.11.0 +iniconfig==2.0.0 +packaging==23.2 +pluggy==1.4.0 +protobuf==3.20.3 +py==1.11.0 +py-cpuinfo==9.0.0 +pytest==7.1.3 +pytest-asyncio==0.23.5 +pytest-benchmark==4.0.0 +tomli==2.0.1 +typing_extensions==4.9.0 +wrapt==1.16.0 +zipp==3.17.0 +-e opentelemetry-instrumentation +-e instrumentation/opentelemetry-instrumentation-grpc diff --git a/tox.ini b/tox.ini index e0d5d79cbc..c52de8b586 100644 --- a/tox.ini +++ b/tox.ini @@ -239,8 +239,12 @@ envlist = lint-instrumentation-wsgi ; opentelemetry-instrumentation-grpc - py3{8,9,10,11,12}-test-instrumentation-grpc - pypy3-test-instrumentation-grpc + ; The numbers at the end of the environment names + ; below mean these dependencies are being used: + ; 0: grpcio>=1.63.0 + ; 1: grpcio==1.62.0 + py3{8,9,10,11}-test-instrumentation-grpc-{0,1} + pypy3-test-instrumentation-grpc-{0,1} lint-instrumentation-grpc ; opentelemetry-instrumentation-sqlalchemy @@ -442,7 +446,9 @@ commands_pre = grpc: pip install opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions grpc: pip install opentelemetry-sdk@{env:CORE_REPO}\#egg=opentelemetry-sdk&subdirectory=opentelemetry-sdk grpc: pip install opentelemetry-test-utils@{env:CORE_REPO}\#egg=opentelemetry-test-utils&subdirectory=tests/opentelemetry-test-utils - grpc: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements.txt + grpc-0: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt + grpc-1: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt + lint-instrumentation-grpc: pip install -r {toxinidir}/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt wsgi: pip install opentelemetry-api@{env:CORE_REPO}\#egg=opentelemetry-api&subdirectory=opentelemetry-api wsgi: pip install opentelemetry-semantic-conventions@{env:CORE_REPO}\#egg=opentelemetry-semantic-conventions&subdirectory=opentelemetry-semantic-conventions From eef229e2546f1828b60ef729c4d2492da1c0d398 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Fri, 3 May 2024 20:06:26 +0000 Subject: [PATCH 04/13] corrected grpcio version in requirements-1.txt for inst-grpc package --- .../opentelemetry-instrumentation-grpc/test-requirements-1.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt index d9fac3bab5..b7b5e5caa0 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt +++ b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt @@ -1,7 +1,7 @@ asgiref==3.7.2 attrs==23.2.0 Deprecated==1.2.14 -grpcio>=1.62.0 +grpcio>=1.63.0 importlib-metadata==6.11.0 iniconfig==2.0.0 packaging==23.2 From a0ad24ceeec9b1c9b83045121bc0510d19e364ff Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Mon, 6 May 2024 13:39:30 +0000 Subject: [PATCH 05/13] corrected version in commnts and requirements.txt for grpc --- .../opentelemetry-instrumentation-grpc/test-requirements-0.txt | 2 +- tox.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt index d30aa5c5e9..9e5a677f60 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt +++ b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt @@ -1,6 +1,6 @@ asgiref==3.7.2 Deprecated==1.2.14 -grpcio==1.62.0 +grpcio<=1.62.0 importlib-metadata==6.11.0 iniconfig==2.0.0 packaging==24.0 diff --git a/tox.ini b/tox.ini index c52de8b586..aec71a7f30 100644 --- a/tox.ini +++ b/tox.ini @@ -242,7 +242,7 @@ envlist = ; The numbers at the end of the environment names ; below mean these dependencies are being used: ; 0: grpcio>=1.63.0 - ; 1: grpcio==1.62.0 + ; 1: grpcio<=1.62.0 py3{8,9,10,11}-test-instrumentation-grpc-{0,1} pypy3-test-instrumentation-grpc-{0,1} lint-instrumentation-grpc From 7afc68a174e912d806f01a37b0f7cdb2cc682939 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Mon, 6 May 2024 13:48:41 +0000 Subject: [PATCH 06/13] corrected grpcio version in requ-0.txt for instrument-grpc --- .../opentelemetry-instrumentation-grpc/test-requirements-0.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt index 9e5a677f60..d30aa5c5e9 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt +++ b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-0.txt @@ -1,6 +1,6 @@ asgiref==3.7.2 Deprecated==1.2.14 -grpcio<=1.62.0 +grpcio==1.62.0 importlib-metadata==6.11.0 iniconfig==2.0.0 packaging==24.0 From cb250e80c42eeecbe40bb95201f066e13f8d413c Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Mon, 6 May 2024 13:51:10 +0000 Subject: [PATCH 07/13] grpcio==1.63.0 version set for requ-1.txt file instrment-grpc --- .../opentelemetry-instrumentation-grpc/test-requirements-1.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt index b7b5e5caa0..6d9531cd5e 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt +++ b/instrumentation/opentelemetry-instrumentation-grpc/test-requirements-1.txt @@ -1,7 +1,7 @@ asgiref==3.7.2 attrs==23.2.0 Deprecated==1.2.14 -grpcio>=1.63.0 +grpcio==1.63.0 importlib-metadata==6.11.0 iniconfig==2.0.0 packaging==23.2 From 03c6392ac5f35697460a305310e6a6a8ecc436da Mon Sep 17 00:00:00 2001 From: Riccardo Magliocchetti Date: Wed, 15 May 2024 11:02:04 +0200 Subject: [PATCH 08/13] Update tox.ini --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index aec71a7f30..87a37be886 100644 --- a/tox.ini +++ b/tox.ini @@ -241,8 +241,8 @@ envlist = ; opentelemetry-instrumentation-grpc ; The numbers at the end of the environment names ; below mean these dependencies are being used: - ; 0: grpcio>=1.63.0 - ; 1: grpcio<=1.62.0 + ; 0: grpcio==1.62.0 + ; 1: grpcio==1.63.0 py3{8,9,10,11}-test-instrumentation-grpc-{0,1} pypy3-test-instrumentation-grpc-{0,1} lint-instrumentation-grpc From b310b4cbbe458df80a094c8814c90b57c33c23c4 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Sat, 8 Jun 2024 08:30:49 +0000 Subject: [PATCH 09/13] Update instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py Co-authored-by: Riccardo Magliocchetti --- .../opentelemetry/instrumentation/grpc/grpcext/_interceptor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py index 1b088a8168..1f4254c2ff 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py +++ b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py @@ -328,7 +328,7 @@ def stream_unary( ): if _registered_method: base_callable = self._channel.stream_unary( - method, request_serializer, response_deserializer + method, request_serializer, response_deserializer, _register_method ) else: base_callable = self._channel.stream_unary( From 98f34b05dca9e1d8c186d0b9706f103da8374bfd Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Sat, 8 Jun 2024 08:31:06 +0000 Subject: [PATCH 10/13] Update instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py Co-authored-by: Riccardo Magliocchetti --- .../opentelemetry/instrumentation/grpc/grpcext/_interceptor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py index 1f4254c2ff..5545e50cee 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py +++ b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py @@ -349,7 +349,7 @@ def stream_stream( ): if _registered_method: base_callable = self._channel.stream_stream( - method, request_serializer, response_deserializer + method, request_serializer, response_deserializer, _registered_method ) else: base_callable = self._channel.stream_stream( From 629c5fce2b79f15d8c3965c96b0b25bbdeba95c9 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Sat, 8 Jun 2024 08:39:22 +0000 Subject: [PATCH 11/13] Updated CHANGEDLOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bbbf49f453..75181c6037 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -90,6 +90,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#2553](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2553)) - `opentelemetry-util-http` Preserve brackets around literal IPv6 hosts ([#2552](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2552)) - `opentelemetry-util-redis` Fix net peer attribute for unix socket connection ([#2493](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2493)) +- `opentelemetry-instrumentation-grpc` Fixes the issue with the gRPC instrumentation not working with the 1.63.0 and higher version of gRPC + ([#2483](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2484)) ## Version 1.24.0/0.45b0 (2024-03-28) From fb9bcc124204443f21d2087cc56620492f861a8c Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Tue, 18 Jun 2024 15:10:00 +0000 Subject: [PATCH 12/13] rebased with main and resolved conflicts --- .../instrumentation/grpc/grpcext/_interceptor.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py index 5545e50cee..32cec6dee0 100644 --- a/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py +++ b/instrumentation/opentelemetry-instrumentation-grpc/src/opentelemetry/instrumentation/grpc/grpcext/_interceptor.py @@ -328,7 +328,10 @@ def stream_unary( ): if _registered_method: base_callable = self._channel.stream_unary( - method, request_serializer, response_deserializer, _register_method + method, + request_serializer, + response_deserializer, + _registered_method, ) else: base_callable = self._channel.stream_unary( @@ -349,7 +352,10 @@ def stream_stream( ): if _registered_method: base_callable = self._channel.stream_stream( - method, request_serializer, response_deserializer, _registered_method + method, + request_serializer, + response_deserializer, + _registered_method, ) else: base_callable = self._channel.stream_stream( From f4faa836bcd04ab91da6e257eb9e3f60538e19d7 Mon Sep 17 00:00:00 2001 From: Vamsi Kocherla <42316524+VamsiKrishna1211@users.noreply.github.com> Date: Tue, 18 Jun 2024 15:38:43 +0000 Subject: [PATCH 13/13] Moved changelog suggestion to unreleased section, added support for py12 instrument-grpc --- CHANGELOG.md | 4 ++-- tox.ini | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75181c6037..318add804c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#2590](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2590)) - Reference symbols from generated semantic conventions ([#2611](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2611)) +- `opentelemetry-instrumentation-grpc` Fixes the issue with the gRPC instrumentation not working with the 1.63.0 and higher version of gRPC + ([#2483](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2484)) ## Version 1.25.0/0.46b0 (2024-05-31) @@ -90,8 +92,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#2553](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2553)) - `opentelemetry-util-http` Preserve brackets around literal IPv6 hosts ([#2552](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2552)) - `opentelemetry-util-redis` Fix net peer attribute for unix socket connection ([#2493](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2493)) -- `opentelemetry-instrumentation-grpc` Fixes the issue with the gRPC instrumentation not working with the 1.63.0 and higher version of gRPC - ([#2483](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/2484)) ## Version 1.24.0/0.45b0 (2024-03-28) diff --git a/tox.ini b/tox.ini index 87a37be886..bcc6fb2497 100644 --- a/tox.ini +++ b/tox.ini @@ -243,7 +243,7 @@ envlist = ; below mean these dependencies are being used: ; 0: grpcio==1.62.0 ; 1: grpcio==1.63.0 - py3{8,9,10,11}-test-instrumentation-grpc-{0,1} + py3{8,9,10,11,12}-test-instrumentation-grpc-{0,1} pypy3-test-instrumentation-grpc-{0,1} lint-instrumentation-grpc