为何GCP获取内存和磁盘空间使用率指标需额外安装监控代理?
GCP不同监控指标的采集要求差异原因
这一差异本质是指标所属的采集层级不同导致的:
- CPU利用率、磁盘吞吐量属于虚拟化层可直接统计的指标:GCP的底层Hypervisor(虚拟化管理程序)本身就负责虚拟机的CPU资源调度、虚拟磁盘的IO转发,不需要进入虚拟机操作系统内部,就能直接统计到该实例的CPU占用比例、磁盘的读写吞吐量数据,自然不需要额外装代理。
- 内存利用率、磁盘空间利用率属于操作系统内部状态指标:Hypervisor层只能感知到给该实例分配了多大的内存、多大的虚拟磁盘,但是完全不知道操作系统内部的内存分配细节(多少是应用占用、多少是系统缓存、多少是空闲),也不知道虚拟机内部文件系统的实际使用比例。如果云厂商直接穿透虚拟化层读取虚拟机内部的系统数据,会破坏虚拟机的安全隔离特性,存在极大的安全风险,所以只能靠用户在虚拟机内部安装监控代理,从系统层采集对应数据再上报到云监控服务。
GCP确实无法用和采集CPU利用率相同的逻辑获取内存、磁盘空间利用率数据,两类指标的采集路径从底层逻辑上就完全不一样,没有办法复用同一套采集方案。
内容的提问来源于stack exchange,提问作者vego
相关产品推荐
相关产品推荐

