From 3d04f565ecac273a5a24a474350c0d59973d4e5c Mon Sep 17 00:00:00 2001 From: Tzook Bar Noy Date: Mon, 22 Sep 2025 15:38:09 -0400 Subject: [PATCH] update latency observer logging to be in unique funcs, so others could extend and overwrite --- .../loggers/user_bot_latency_log_observer.py | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/src/pipecat/observers/loggers/user_bot_latency_log_observer.py b/src/pipecat/observers/loggers/user_bot_latency_log_observer.py index 505a0a807..e17387019 100644 --- a/src/pipecat/observers/loggers/user_bot_latency_log_observer.py +++ b/src/pipecat/observers/loggers/user_bot_latency_log_observer.py @@ -61,17 +61,27 @@ class UserBotLatencyLogObserver(BaseObserver): elif isinstance(data.frame, UserStoppedSpeakingFrame): self._user_stopped_time = time.time() elif isinstance(data.frame, (EndFrame, CancelFrame)): - if self._latencies: - avg_latency = mean(self._latencies) - min_latency = min(self._latencies) - max_latency = max(self._latencies) - logger.info( - f"⏱️ LATENCY FROM USER STOPPED SPEAKING TO BOT STARTED SPEAKING - Avg: {avg_latency:.3f}s, Min: {min_latency:.3f}s, Max: {max_latency:.3f}s" - ) + self._log_summary() elif isinstance(data.frame, BotStartedSpeakingFrame) and self._user_stopped_time: latency = time.time() - self._user_stopped_time self._user_stopped_time = 0 self._latencies.append(latency) - logger.debug( - f"⏱️ LATENCY FROM USER STOPPED SPEAKING TO BOT STARTED SPEAKING: {latency:.3f}s" - ) + self._log_latency(latency) + + async def _log_summary(self): + if not self._latencies: + return + avg_latency = mean(self._latencies) + min_latency = min(self._latencies) + max_latency = max(self._latencies) + logger.info( + f"⏱️ LATENCY FROM USER STOPPED SPEAKING TO BOT STARTED SPEAKING - Avg: {avg_latency:.3f}s, Min: {min_latency:.3f}s, Max: {max_latency:.3f}s" + ) + + async def _log_latency(self, latency: float): + """Log the latency. + + Args: + latency: The latency to log. + """ + logger.debug(f"⏱️ LATENCY FROM USER STOPPED SPEAKING TO BOT STARTED SPEAKING: {latency:.3f}s")