From ebbadb2ea82b5e32e418119c1d37c573e8991595 Mon Sep 17 00:00:00 2001 From: ZuoZuo <68836346+Mrz-sakura@users.noreply.github.com> Date: Wed, 22 Apr 2026 01:44:39 +0800 Subject: [PATCH] fix: avoid duplicate nacos fallback namespaces --- monitor/nacos.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/monitor/nacos.py b/monitor/nacos.py index eccdb68..6b430c0 100644 --- a/monitor/nacos.py +++ b/monitor/nacos.py @@ -424,6 +424,8 @@ def build_nacos_payload() -> dict[str, Any]: raw_services = list_services(namespace["namespaceId"]) # 这里保存当前 namespace 下所有待查询服务。 queries_by_key: dict[tuple[str, str], dict[str, str]] = {} + # 只在可见 namespace,或者根本没有可见 namespace 时,才补 fallback 查询。 + allow_fallback_queries = namespace["visible"] or not any(item["visible"] for item in normalized_namespaces) # 先收 service/list 返回的服务。 for raw_name in raw_services: @@ -438,11 +440,12 @@ def build_nacos_payload() -> dict[str, Any]: } # 再补上 targets.json 里已知的注册服务,避免 service/list 返回空时整页丢数据。 - for item in monitored_service_queries(): - queries_by_key.setdefault( - (item["groupName"], item["registryName"]), - item, - ) + if allow_fallback_queries: + for item in monitored_service_queries(): + queries_by_key.setdefault( + (item["groupName"], item["registryName"]), + item, + ) # 逐个服务拉实例详情。 for query in queries_by_key.values():