
# 云原生监控插件兼容自建Prometheus
#### 云原生监控插件兼容模式
- 若您已自建Prometheus，且您的Prometheus基于开源，未做深度定制、未与您的监控系统深度整合，建议您卸载自建Prometheus并直接使用云原生监控插件对您的集群进行监控，无需开启"兼容模式"。
  ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
  卸载您自建的Prometheus，需要确保删除您自建Prometheus所有的工作负载以及以monitoring.coreos.com结尾的所有CRDs。详情请参见[如何移除自建Prometheus？]。
  
- 若您自建的Prometheus无法卸载，且需要使用成本洞察、监控中心等功能，当您的自建Prometheus满足[兼容性要求]时，您可以选择开启"兼容模式"，详情请参见[开通监控中心](https://support.huaweicloud.com/usermanual-cce/cce_10_0820.html#cce_10_0820__section1415505014432)。
  ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
  兼容模式下无法得到完整的云原生监控插件体验，例如，兼容模式不支持成本优化、无法在AOM页面进行指标废弃等，详情请参见[兼容模式约束]。
  
 
 #### 兼容性要求
请确保您自建的Prometheus满足以下条件，否则无法正常共存运行：
- 若您的Prometheus不是基于Operator社区的KubePrometheus构建的，则满足兼容性要求。
- 若您的Prometheus是基于Operator社区的KubePrometheus构建的，则CRD prometheuses.monitoring.coreos.com的版本至少应该为0.8.0。 您可以在集群内执行如下命令，快速进行判断：
  ```
  kubectl get crd prometheuses.monitoring.coreos.com -oyaml | grep controller-gen.kubebuilder.io/version
  ```
  若回显如下，则满足兼容性要求。
  ```
  Error from server (NotFound): customresourcedefinitions.apiextensions.k8s.io "prometheuses.monitoring.coreos.com" not found
  ```
  若回显如下，且最后的版本≥v0.8.0，则满足兼容性要求。
  ```
  controller-gen.kubebuilder.io/version: v0.9.2
  ```
  
 
 #### 兼容模式约束
- 兼容模式会将云原生监控插件安装在cce-monitoring命名空间下，默认不识别任何其他命名空间的ServiceMonitor和PodMonitor。
- 只支持无本地存储的模式。
- 开启后不支持关闭，可通过插件卸载安装的方式切换为正常模式。
- 暂不支持成本优化。
- 暂不支持在AOM页面进行指标废弃。
- 暂不支持在AOM页面进行ServiceMonitor和PodMonitor启停。
 
 #### 如何移除自建Prometheus？
1. 首先，您需要删除所有自建Prometheus相关的工作负载、服务以及其他资源，包含DaemonSet、Deployment、Statefulset、Service等。一般在monitoring命名空间下，请根据您实际安装的命名空间进行调整。
2. 查询所有monitoring.coreos.com CRDs。 
   ```
   kubectl get crd | grep monitoring.coreos.com | awk '{print $1}' | xargs
   ```
   若回显为空，则无需下一步操作。
   
   
3. 删除所有monitoring.coreos.com CRDs。 
   ```
   kubectl delete crd $(kubectl get crd | grep monitoring.coreos.com | awk '{print $1}' | xargs)
   ```
   
   
 
