From 07df19882207b38b8361de5e9a26bcf5a7b6fbd2 Mon Sep 17 00:00:00 2001 From: ZuoZuo <68836346+Mrz-sakura@users.noreply.github.com> Date: Wed, 22 Apr 2026 01:42:03 +0800 Subject: [PATCH] fix: ignore missing nacos catalog entries --- monitor/nacos.py | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/monitor/nacos.py b/monitor/nacos.py index d84cd04..eccdb68 100644 --- a/monitor/nacos.py +++ b/monitor/nacos.py @@ -330,19 +330,26 @@ def list_instances(namespace_id: str, service_name: str, group_name: str) -> lis def catalog_instances(namespace_id: str, service_name: str, group_name: str) -> list[dict[str, Any]]: - # 调用 catalog/instances 获取注册表视图。 - payload = nacos_request( - "GET", - "/nacos/v1/ns/catalog/instances", - { - "serviceName": service_name, - "groupName": group_name, - "namespaceId": namespace_id or None, - "clusterName": NACOS_DISCOVERY_CLUSTER_NAME, - "pageNo": "1", - "pageSize": str(max(NACOS_PAGE_SIZE, 200)), - }, - ) + try: + # 调用 catalog/instances 获取注册表视图。 + payload = nacos_request( + "GET", + "/nacos/v1/ns/catalog/instances", + { + "serviceName": service_name, + "groupName": group_name, + "namespaceId": namespace_id or None, + "clusterName": NACOS_DISCOVERY_CLUSTER_NAME, + "pageNo": "1", + "pageSize": str(max(NACOS_PAGE_SIZE, 200)), + }, + ) + except RuntimeError as exc: + # 服务不存在时按空列表处理,不让单服务失败拖垮整块 Nacos 面板。 + message = str(exc).lower() + if "is not found" in message or "service " in message and "not found" in message: + return [] + raise # 返回 list 字段。 return list(payload.get("list") or [])