Unverified Commit efa90846 authored by Russell Bryant's avatar Russell Bryant Committed by GitHub
Browse files

[Core] Avoid metrics log noise when idle (#8868)


Signed-off-by: default avatarRussell Bryant <rbryant@redhat.com>
parent 803f37ea
......@@ -421,6 +421,11 @@ def get_throughput(tracked_stats: List[int], now: float,
class LoggingStatLogger(StatLoggerBase):
"""LoggingStatLogger is used in LLMEngine to log to Stdout."""
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.last_prompt_throughput: Optional[float] = None
self.last_generation_throughput: Optional[float] = None
def log(self, stats: Stats) -> None:
"""Called by LLMEngine.
Logs to Stdout every self.local_interval seconds."""
......@@ -445,8 +450,14 @@ class LoggingStatLogger(StatLoggerBase):
now=stats.now,
last_log=self.last_local_log)
# Log to stdout.
logger.info(
log_fn = logger.info
if not any((prompt_throughput, generation_throughput,
self.last_prompt_throughput,
self.last_generation_throughput)):
# Avoid log noise on an idle production system
log_fn = logger.debug
log_fn(
"Avg prompt throughput: %.1f tokens/s, "
"Avg generation throughput: %.1f tokens/s, "
"Running: %d reqs, Swapped: %d reqs, "
......@@ -472,11 +483,16 @@ class LoggingStatLogger(StatLoggerBase):
self._format_spec_decode_metrics_str(
self.spec_decode_metrics))
self._reset(stats, prompt_throughput, generation_throughput)
def _reset(self, stats, prompt_throughput, generation_throughput) -> None:
# Reset tracked stats for next interval.
self.num_prompt_tokens = []
self.num_generation_tokens = []
self.last_local_log = stats.now
self.spec_decode_metrics = None
self.last_prompt_throughput = prompt_throughput
self.last_generation_throughput = generation_throughput
def _format_spec_decode_metrics_str(
self, metrics: "SpecDecodeWorkerMetrics") -> str:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment