diff --git a/CHANGELOG.md b/CHANGELOG.md index a40949fb32e..d1b58fd05fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,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 + ([#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)) - Fix serialization of None values in logs body to match 1.31.0+ data model 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 4be75c5335e..c32f7b3692a 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 @@ -186,6 +186,8 @@ class OTLPExporterMixin( compression: gRPC compression method to use """ + _MAX_RETRY_TIMEOUT = 64 + def __init__( self, endpoint: Optional[str] = None, @@ -285,12 +287,13 @@ 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: