From 3a5d28c59461e67683066f3785683c07a40d262f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Woimb=C3=A9e?= Date: Thu, 28 Nov 2024 16:23:42 +0100 Subject: [PATCH 1/4] configurable max backoff for GRPC exporter --- .../src/opentelemetry/exporter/otlp/proto/grpc/exporter.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py b/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py index 582d083e86f..1b9488126eb 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py @@ -185,6 +185,7 @@ class OTLPExporterMixin( timeout: Backend request timeout in seconds compression: gRPC compression method to use """ + _MAX_RETRY_TIMEOUT = 64 def __init__( self, @@ -286,12 +287,11 @@ def _export( # data.__class__.__name__, # delay, # ) - max_value = 64 # expo returns a generator that yields delay values which grow # exponentially. Once delay is greater than max_value, the yielded # value will remain constant. - for delay in _create_exp_backoff_generator(max_value=max_value): - if delay == max_value or self._shutdown: + for delay in _create_exp_backoff_generator(max_value=self._MAX_RETRY_TIMEOUT): + if delay == self._MAX_RETRY_TIMEOUT or self._shutdown: return self._result.FAILURE with self._export_lock: From d9d06a63804e874a7cc5436b1122e45ddc75a5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Woimb=C3=A9e?= Date: Thu, 28 Nov 2024 16:32:37 +0100 Subject: [PATCH 2/4] update changelog --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 325b288ccfc..57e02564cfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ([#4353](https://github.com/open-telemetry/opentelemetry-python/pull/4353)) - sdk: don't log or print warnings when the SDK has been disabled ([#4371](https://github.com/open-telemetry/opentelemetry-python/pull/4371)) +- Configurable max retry timeout for grpc exporter + ([#4328](https://github.com/open-telemetry/opentelemetry-python/pull/4328)) - Fix span context manager typing by using ParamSpec from typing_extensions ([#4389](https://github.com/open-telemetry/opentelemetry-python/pull/4389)) From 2b50d7d2dc2c493d25532d7952eb9508f382eb3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Woimb=C3=A9e?= Date: Thu, 28 Nov 2024 16:38:54 +0100 Subject: [PATCH 3/4] update pr link in changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 57e02564cfe..969cc9e77b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - sdk: don't log or print warnings when the SDK has been disabled ([#4371](https://github.com/open-telemetry/opentelemetry-python/pull/4371)) - Configurable max retry timeout for grpc exporter - ([#4328](https://github.com/open-telemetry/opentelemetry-python/pull/4328)) + ([#4333](https://github.com/open-telemetry/opentelemetry-python/pull/4333)) - Fix span context manager typing by using ParamSpec from typing_extensions ([#4389](https://github.com/open-telemetry/opentelemetry-python/pull/4389)) From f43c845463149469b563ae1c55bc4a6a0f9d1227 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arthur=20Woimb=C3=A9e?= Date: Thu, 28 Nov 2024 16:41:52 +0100 Subject: [PATCH 4/4] oops --- .../src/opentelemetry/exporter/otlp/proto/grpc/exporter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py b/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py index 1b9488126eb..9be4e505acf 100644 --- a/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py +++ b/exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/exporter.py @@ -185,6 +185,7 @@ class OTLPExporterMixin( timeout: Backend request timeout in seconds compression: gRPC compression method to use """ + _MAX_RETRY_TIMEOUT = 64 def __init__( @@ -290,7 +291,9 @@ def _export( # expo returns a generator that yields delay values which grow # exponentially. Once delay is greater than max_value, the yielded # value will remain constant. - for delay in _create_exp_backoff_generator(max_value=self._MAX_RETRY_TIMEOUT): + for delay in _create_exp_backoff_generator( + max_value=self._MAX_RETRY_TIMEOUT + ): if delay == self._MAX_RETRY_TIMEOUT or self._shutdown: return self._result.FAILURE