diff --git a/instrumentation-genai/opentelemetry-instrumentation-google-genai/CHANGELOG.md b/instrumentation-genai/opentelemetry-instrumentation-google-genai/CHANGELOG.md index 85f00eebd6..13e8d32fcd 100644 --- a/instrumentation-genai/opentelemetry-instrumentation-google-genai/CHANGELOG.md +++ b/instrumentation-genai/opentelemetry-instrumentation-google-genai/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- Minor change to check LRU cache in Completion Hook before acquiring semaphore/thread ([#3907](https://github.com/open-telemetry/opentelemetry-python-contrib/pull/3907)). + ## Version 0.4b0 (2025-10-16) - Implement the new semantic convention changes made in https://github.com/open-telemetry/semantic-conventions/pull/2179. diff --git a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/_upload/completion_hook.py b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/_upload/completion_hook.py index 42c62cd789..6e88b5e389 100644 --- a/util/opentelemetry-util-genai/src/opentelemetry/util/genai/_upload/completion_hook.py +++ b/util/opentelemetry-util-genai/src/opentelemetry/util/genai/_upload/completion_hook.py @@ -149,6 +149,9 @@ def done(future: Future[None]) -> None: path, contents_hashed_to_filename, ), json_encodeable in upload_data.items(): + if contents_hashed_to_filename and path in self.lru_dict: + self.lru_dict.move_to_end(path) + continue # could not acquire, drop data if not self._semaphore.acquire(blocking=False): # pylint: disable=consider-using-with _logger.warning(