From 3d9c2cbacaa55995abde69e2befd0a8d6b153742 Mon Sep 17 00:00:00 2001 From: Thomas Ciesla Date: Fri, 9 Jan 2026 16:28:12 +0100 Subject: [PATCH] slowly im bored --- jtl-wafi-agent.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/jtl-wafi-agent.py b/jtl-wafi-agent.py index cb701eb..5e7a9c6 100644 --- a/jtl-wafi-agent.py +++ b/jtl-wafi-agent.py @@ -1532,7 +1532,16 @@ def get_shop_stats_tracker(shop: str, window_seconds: int = 300) -> LiveStatsTra tracker = LiveStatsTracker(shop, window_seconds) _load_initial_request_details(tracker, shop) _shop_stats_trackers[shop] = tracker - return _shop_stats_trackers[shop] + + # Falls ip_request_details leer sind, nochmal laden (z.B. nach Reset oder bei erstem WHOIS) + tracker = _shop_stats_trackers[shop] + if not tracker.ip_request_details: + logger.info(f"Tracker für {shop} hat keine ip_request_details - lade aus Log") + _load_initial_request_details(tracker, shop) + else: + logger.debug(f"Tracker für {shop} hat {len(tracker.ip_request_details)} IPs in ip_request_details") + + return tracker def _load_initial_request_details(tracker: LiveStatsTracker, shop: str, max_lines: int = 5000): @@ -1567,7 +1576,9 @@ def _load_initial_request_details(tracker: LiveStatsTracker, shop: str, max_line # Nur die letzten max_lines Zeilen verarbeiten lines = lines[-max_lines:] + logger.info(f"_load_initial_request_details: {len(lines)} Zeilen gelesen aus {log_file}") + parsed_count = 0 for line in lines: try: # IP extrahieren @@ -1632,11 +1643,14 @@ def _load_initial_request_details(tracker: LiveStatsTracker, shop: str, max_line if len(tracker.ip_request_details[ip]) > tracker.max_request_details: tracker.ip_request_details[ip] = tracker.ip_request_details[ip][-tracker.max_request_details:] - except Exception: + parsed_count += 1 + + except Exception as e: + logger.debug(f"Fehler beim Parsen von Zeile: {e}") continue total_requests = sum(len(reqs) for reqs in tracker.ip_request_details.values()) - logger.info(f"Initiale Request-Details für {shop} geladen: {len(tracker.ip_request_details)} IPs, {total_requests} Requests total") + logger.info(f"Initiale Request-Details für {shop} geladen: {len(tracker.ip_request_details)} IPs, {total_requests} Requests total (parsed {parsed_count} von {len(lines)} Zeilen)") except Exception as e: logger.warning(f"Fehler beim Laden der initialen Request-Details für {shop}: {e}")