diff --git a/bkmonitor/api/kubernetes/default.py b/bkmonitor/api/kubernetes/default.py index 8cdf1f46a3..e13281cdc6 100644 --- a/bkmonitor/api/kubernetes/default.py +++ b/bkmonitor/api/kubernetes/default.py @@ -772,7 +772,7 @@ def perform_request(self, params): return self.get_clusters_from_bcs_cluster_manager(params) -class FetchIngressListByClusterResource(CacheResource): +class FetchK8sIngressListByClusterResource(CacheResource): cache_type = CacheType.BCS class RequestSerializer(serializers.Serializer): diff --git a/bkmonitor/apm/core/platform_config.py b/bkmonitor/apm/core/platform_config.py index c707c3016d..5c4c0a8cb8 100644 --- a/bkmonitor/apm/core/platform_config.py +++ b/bkmonitor/apm/core/platform_config.py @@ -353,6 +353,9 @@ def get_resource_fill_dimensions_config(cls, bcs_cluster_id=None): return {} operator_service_name = svc.items[0].metadata.name + cluster_cache_config = settings.K8S_COLLECTOR_CONFIG or {} + cache_interval = cluster_cache_config.get(bcs_cluster_id, {}).get("cache", {}).get("interval", '10s') + return { "name": "resource_filter/fill_dimensions", "from_record": [ @@ -368,7 +371,7 @@ def get_resource_fill_dimensions_config(cls, bcs_cluster_id=None): "key": "k8s.pod.ip", "url": f"http://{operator_service_name}:8080/pods", "timeout": "60s", - "interval": "10s", + "interval": cache_interval, }, }, } diff --git a/bkmonitor/bkmonitor/define/global_config.py b/bkmonitor/bkmonitor/define/global_config.py index 2945608096..3bc3de9fb2 100644 --- a/bkmonitor/bkmonitor/define/global_config.py +++ b/bkmonitor/bkmonitor/define/global_config.py @@ -52,6 +52,7 @@ ("ENABLE_DEFAULT_STRATEGY", slz.BooleanField(label="是否开启默认策略", default=True)), ("IS_ENABLE_VIEW_CMDB_LEVEL", slz.BooleanField(label="是否开启前端视图部分的CMDB预聚合", default=False)), ("K8S_OPERATOR_DEPLOY_NAMESPACE", slz.JSONField(label="bkmonitor-operator 特殊集群部署命名空间信息", default={})), + ("K8S_COLLECTOR_CONFIG", slz.JSONField(label="集群内 collector 数据接收端特殊配置", default={})), # === BKDATA & AIOPS 相关配置 开始 === ("AIOPS_BIZ_WHITE_LIST", slz.ListField(label="开启智能异常算法的业务白名单", default=[])), ("AIOPS_INCIDENT_BIZ_WHITE_LIST", slz.ListField(label="开启根因故障定位的业务白名单", default=[])), diff --git a/bkmonitor/config/default.py b/bkmonitor/config/default.py index baca1dad1c..1f890bfd67 100644 --- a/bkmonitor/config/default.py +++ b/bkmonitor/config/default.py @@ -1477,6 +1477,13 @@ def decode_plaintext(cls, plaintext_bytes: bytes, encoding: str = "utf-8", **kwa # } K8S_OPERATOR_DEPLOY_NAMESPACE = {} +# 集群内 collector 接收端特殊配置,针对一个集群部署多套 operator 时需要配置这个 +# 格式: { +# "BCS-K8S-00000": {"cache": {"interval": "10s"}}, +# "BCS-K8S-00001": {"cache": {"interval": "1s"}}, +# } +K8S_COLLECTOR_CONFIG = {} + # 默认K8S插件采集集群ID K8S_PLUGIN_COLLECT_CLUSTER_ID = "" diff --git a/bkmonitor/packages/apm_web/handlers/strategy_group/groups/rpc/rpc.py b/bkmonitor/packages/apm_web/handlers/strategy_group/groups/rpc/rpc.py index 10dc423c39..aaaef91f86 100644 --- a/bkmonitor/packages/apm_web/handlers/strategy_group/groups/rpc/rpc.py +++ b/bkmonitor/packages/apm_web/handlers/strategy_group/groups/rpc/rpc.py @@ -277,7 +277,7 @@ def _add_member_to_notice_group( user_group_inst, data={"duty_arranges": [{"users": current_users}]}, partial=True ) - user_group_serializer.is_valid(True) + user_group_serializer.is_valid(raise_exception=True) return user_group_serializer.save().id def _apply_default_notice_group(self) -> int: diff --git a/bkmonitor/packages/monitor_web/overview/resources.py b/bkmonitor/packages/monitor_web/overview/resources.py index 0ecf63baf1..a59c453d77 100644 --- a/bkmonitor/packages/monitor_web/overview/resources.py +++ b/bkmonitor/packages/monitor_web/overview/resources.py @@ -732,7 +732,9 @@ def perform_request(self, params: Dict[str, Any]) -> None: config = config.config # 查询已屏蔽策略 - shield_configs = Shield.objects.filter(category="strategy", failure_time__gte=timezone.now()) + shield_configs = Shield.objects.filter( + category="strategy", failure_time__gte=timezone.now(), bk_biz_id=bk_biz_id + ) shielded_strategy_ids = set( itertools.chain.from_iterable( [shield_config.dimension_config.get("strategy_id", []) for shield_config in shield_configs]