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, ...@@ -421,6 +421,11 @@ def get_throughput(tracked_stats: List[int], now: float,
class LoggingStatLogger(StatLoggerBase): class LoggingStatLogger(StatLoggerBase):
"""LoggingStatLogger is used in LLMEngine to log to Stdout.""" """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: def log(self, stats: Stats) -> None:
"""Called by LLMEngine. """Called by LLMEngine.
Logs to Stdout every self.local_interval seconds.""" Logs to Stdout every self.local_interval seconds."""
...@@ -445,8 +450,14 @@ class LoggingStatLogger(StatLoggerBase): ...@@ -445,8 +450,14 @@ class LoggingStatLogger(StatLoggerBase):
now=stats.now, now=stats.now,
last_log=self.last_local_log) last_log=self.last_local_log)
# Log to stdout. log_fn = logger.info
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 prompt throughput: %.1f tokens/s, "
"Avg generation throughput: %.1f tokens/s, " "Avg generation throughput: %.1f tokens/s, "
"Running: %d reqs, Swapped: %d reqs, " "Running: %d reqs, Swapped: %d reqs, "
...@@ -472,11 +483,16 @@ class LoggingStatLogger(StatLoggerBase): ...@@ -472,11 +483,16 @@ class LoggingStatLogger(StatLoggerBase):
self._format_spec_decode_metrics_str( self._format_spec_decode_metrics_str(
self.spec_decode_metrics)) 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. # Reset tracked stats for next interval.
self.num_prompt_tokens = [] self.num_prompt_tokens = []
self.num_generation_tokens = [] self.num_generation_tokens = []
self.last_local_log = stats.now self.last_local_log = stats.now
self.spec_decode_metrics = None self.spec_decode_metrics = None
self.last_prompt_throughput = prompt_throughput
self.last_generation_throughput = generation_throughput
def _format_spec_decode_metrics_str( def _format_spec_decode_metrics_str(
self, metrics: "SpecDecodeWorkerMetrics") -> 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