cleanup all worker stats when starting up servers

This commit is contained in:
2026-04-04 21:28:26 +02:00
parent 79f23b8be6
commit 9d33c6fded
6 changed files with 109 additions and 10 deletions
+9 -3
View File
@@ -1,9 +1,9 @@
import time
from server.metrics.MetricsManager import MetricsManager
import time
class ServerMetricsCollector:
def __init__(self, metrics_manager:MetricsManager, game_state_local_cache:bool, metrics_backend:str, game_state_backend:str, stale_game_timeout_sec:int, game_last_seen_unix:dict, game_move_counts:dict,):
def __init__(self, metrics_manager:MetricsManager, game_state_local_cache:bool, metrics_backend:str, game_state_backend:str, stale_game_timeout_sec:int, game_last_seen_unix:dict, game_move_counts:dict):
self._manager = metrics_manager
self._stale_game_timeout_sec = stale_game_timeout_sec
self._game_last_seen_unix = game_last_seen_unix
@@ -167,6 +167,12 @@ class ServerMetricsCollector:
local_snapshot = self.build_local_snapshot(game_last_seen_unix, game_move_counts)
return await self._manager.snapshot(local_snapshot)
async def clear_worker_metrics(self) -> None:
await self._manager.clear_all_workers()
async def should_clear_worker_metrics_on_startup(self, lock_ttl_seconds:int=300) -> bool:
return await self._manager.acquire_startup_cleanup_lock(lock_ttl_seconds)
def build_prometheus_metrics(self, snapshot:dict) -> str:
lines = [
'# HELP snake_games_started_total Total games started by snake server.',