vegarl / server /slo_monitor.py
ronitraj's picture
Deploy Space without oversized raw dataset
4fbc241
raw
history blame contribute delete
523 Bytes
from __future__ import annotations
class SLOMonitor:
def evaluate(self, p99_ttft_ms: float, target_ms: float, active_requests: int) -> tuple[float, int]:
if active_requests <= 0:
return 1.0, 0
if p99_ttft_ms <= target_ms:
return 1.0, 0
overflow_ratio = min(1.0, (p99_ttft_ms - target_ms) / max(target_ms, 1.0))
violations = max(1, int(active_requests * overflow_ratio))
compliance = max(0.0, 1.0 - overflow_ratio)
return compliance, violations