Skip to content

Commit 9921f16

Browse files
committed
Add more details to "no relevant sample found" warning log
Signed-off-by: Mathias L. Baumann <[email protected]>
1 parent 719eea7 commit 9921f16

File tree

1 file changed

+32
-10
lines changed

1 file changed

+32
-10
lines changed

src/frequenz/sdk/timeseries/_resampling.py

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -746,16 +746,7 @@ def resample(self, timestamp: datetime) -> Sample[Quantity]:
746746
# resort to some C (or similar) implementation.
747747
relevant_samples = list(itertools.islice(self._buffer, min_index, max_index))
748748
if not relevant_samples:
749-
_logger.warning("No relevant samples found for: %s", self._name)
750-
_logger.debug("Requested: %s - %s", minimum_relevant_timestamp, timestamp)
751-
if self._buffer:
752-
_logger.debug(
753-
"Buffer: %s - %s",
754-
self._buffer[0].timestamp,
755-
self._buffer[-1].timestamp,
756-
)
757-
else:
758-
_logger.debug("Buffer is empty")
749+
self._log_no_relevant_samples(minimum_relevant_timestamp, timestamp)
759750

760751
value = (
761752
conf.resampling_function(relevant_samples, conf, props)
@@ -764,6 +755,37 @@ def resample(self, timestamp: datetime) -> Sample[Quantity]:
764755
)
765756
return Sample(timestamp, None if value is None else Quantity(value))
766757

758+
def _log_no_relevant_samples(
759+
self, minimum_relevant_timestamp: datetime, timestamp: datetime
760+
) -> None:
761+
"""Log that no relevant samples were found.
762+
763+
Args:
764+
minimum_relevant_timestamp: The minimum timestamp for which relevant samples
765+
timestamp: The timestamp for which no relevant samples were found.
766+
"""
767+
if self._buffer:
768+
buffer_label = f"Buffer({len(self._buffer)}):"
769+
buffer_info = f"{self._buffer[0].timestamp} - {self._buffer[-1].timestamp}"
770+
else:
771+
buffer_label = "Buffer:"
772+
buffer_info = "Buffer is empty"
773+
774+
# Calculate the maximum label width for alignment
775+
label_width = max(len("Requested:"), len(buffer_label))
776+
777+
_logger.warning(
778+
("No relevant samples found for: %s\n%-*s %s - %s\n%-*s %s"),
779+
self._name,
780+
label_width,
781+
"Requested:",
782+
minimum_relevant_timestamp,
783+
timestamp,
784+
label_width,
785+
buffer_label,
786+
buffer_info,
787+
)
788+
767789

768790
class _StreamingHelper:
769791
"""Resample data coming from a source, sending the results to a sink."""

0 commit comments

Comments
 (0)