diff --git a/ai-hub/app/core/grpc/services/grpc_server.py b/ai-hub/app/core/grpc/services/grpc_server.py index 8e079e8..532e259 100644 --- a/ai-hub/app/core/grpc/services/grpc_server.py +++ b/ai-hub/app/core/grpc/services/grpc_server.py @@ -562,6 +562,8 @@ def ReportHealth(self, request_iterator, context): """Collect Health Metrics and Feed Policy Updates.""" for hb in request_iterator: + if hb.node_id == "synology-nas" or os.getenv("DEBUG_GRPC"): + logger.info(f"[💓] ReportHealth from {hb.node_id}: CPU {hb.cpu_usage_percent}%") self.registry.update_stats(hb.node_id, { "active_worker_count": hb.active_worker_count, "cpu_usage_percent": hb.cpu_usage_percent, diff --git a/ai-hub/app/core/services/node_registry.py b/ai-hub/app/core/services/node_registry.py index 4054a9a..adc9481 100644 --- a/ai-hub/app/core/services/node_registry.py +++ b/ai-hub/app/core/services/node_registry.py @@ -439,6 +439,8 @@ node.update_stats(stats) if stats.get("cpu_usage_percent", 0) > 0 or stats.get("memory_usage_percent", 0) > 0: logger.debug(f"[💓] Heartbeat {node_id}: CPU {stats.get('cpu_usage_percent')}% | MEM {stats.get('memory_usage_percent')}%") + else: + logger.warning(f"[💓⚠️] Heartbeat received for UNKNOWN node: {node_id}. Live nodes: {list(self._nodes.keys())}") # Persist heartbeat timestamp to DB asynchronously self.db_executor.submit(self._db_update_heartbeat, node_id) # Emit heartbeat event to live UI