Skip to content

Commit 834e07f

Browse files
committed
Log component outages only once a minute
Right now it is almost once a second, which gets very spammy. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 746744d commit 834e07f

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/frequenz/sdk/timeseries/battery_pool/_component_metric_fetcher.py

+18-2
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ class LatestMetricsFetcher(ComponentMetricFetcher, Generic[T], ABC):
7474

7575
_receiver: Receiver[T]
7676
_max_waiting_time: float
77+
_outage: bool
78+
_last_log_time: datetime | None
7779

7880
@classmethod
7981
async def async_new(
@@ -107,6 +109,8 @@ async def async_new(
107109
# pylint: disable=protected-access
108110
self._receiver = await self._subscribe()
109111
self._max_waiting_time = MAX_BATTERY_DATA_AGE_SEC
112+
self._outage = False
113+
self._last_log_time = None
110114
return self
111115

112116
async def fetch_next(self) -> ComponentMetricsData | None:
@@ -120,15 +124,27 @@ async def fetch_next(self) -> ComponentMetricsData | None:
120124
data = await asyncio.wait_for(
121125
self._receiver.receive(), self._max_waiting_time
122126
)
127+
self._outage = False
128+
self._last_log_time = None
123129

124130
except ChannelClosedError:
125131
_logger.exception(
126132
"Channel for component %d was closed.", self._component_id
127133
)
128134
return None
129135
except asyncio.TimeoutError:
130-
# Next time wait infinitely until we receive any message.
131-
_logger.debug("Component %d stopped sending data.", self._component_id)
136+
now = datetime.now(tz=timezone.utc)
137+
if (
138+
not self._outage
139+
or not self._last_log_time
140+
or (now - self._last_log_time).total_seconds() > 60
141+
):
142+
self._outage = True
143+
self._last_log_time = now
144+
_logger.warning(
145+
"Component %d stopped sending data.",
146+
self._component_id,
147+
)
132148
return ComponentMetricsData(
133149
self._component_id, datetime.now(tz=timezone.utc), {}
134150
)

0 commit comments

Comments
 (0)