前言
监控是保障系统稳定性的重要组成部分,在Kubernetes开源生态中,资源类的监控工具与组件百花齐放。除了社区自己孵化的metrics-server
,到从CNCF
毕业的Prometheus
,开发者可选的方案有很多。但是,只有资源类的监控是远远不够的,因为资源监控存在如下两个主要的缺欠:
- 监控的实时性与准确性不足
大部分资源监控都是基于推或者拉的模式进行数据离线,因此通常数据是每隔一段时间采集一次,如果在时间间隔内出现一些毛刺或者异常,而在下一个采集点到达时恢复,大部分的采集系统会吞掉这个异常。而针对毛刺的场景,阶段的采集会自动削峰,从而造成准确性的降低。
- 监控的场景覆盖范围不足
部分监控场景是资源不能表述的,比如Pod的启动停止,我们是无法简单的用资源的利用率来计量的,因为当资源为0的时候,我们无法是无法区分这个状态产生的真实原因。
基