按照《SRE:Google运维解密》中描述的, 分布式系统监控的四类黄金指标是:延迟(Latency)、流量(Traffic)、错误(Errors)、饱和度(Saturation)。
从下图可以看到,对每一个系统来说,这四类监控指标覆盖了:输入、输出、和系统自身。
指标监控项
在不同场景下,每类指标都有不同的监控项:
监控关注点和策略
这些监控项都需要时序指标异常检测技术,除此之外,它们还有自己的特征:
1、 流量类
流量类主要关注点在:
- 异常流量:突增或突降、同比环比不一致。
- 历史峰值,以及基于历史流量预测未来流量。
主要的技术难点在异常点的干扰,相关解决策略可以参看: 百度是如何做智能流量异常检测
- 基于鲁棒回归的预测算法,可以不受异常点的影响,精准地预测流量水位值;
- 基于泊松分布的检测算法,可以从概率的角度对流量建模,能够使用简单的恒定阈值来精准地检测流量异常;
2、 错误类
常态错误是不可取的,这部分要么应该归入某种业务状态,要么就要分析解决。
- 可归入业务状态的,需要看某种状态的走势,就回到流量类的异常走势分析了。
- 错误类的,要分析发生的原因,并看如何避免问题发生。
错误率突升或者成功率突降代表系统自身的处理逻辑可能存在问题,这类指标的异常检测利用了二项式分布,以解决正常和异常的边界区分问题。参看:《还记得概率课本中的二项分布吗?在我们的网络判障中发挥了大作用!》
3、 延迟类
- 服务接口有超时等待、超时重试相关设置,这部分的时间是底线时间。
- 由于
吞吐量 = 流量 * 平均耗时
,一旦耗时增大,服务的处理能力会下降,如果正好是高峰期,有扛不住的隐患。
基于上面两条认知,延迟类我们要看:
- 平均耗时,用于吞吐量的评估。
- 基于业务特征,关注用户体验,看 TP95,TP99,TP999 ... 耗时。
对于耗时大于一定阈值的(尤其是高峰期时),要做分析和解决,比如典型的数据库慢查询。
4、 饱和度类
负荷程度如何?由最短板所决定。比如:在内存受限的系统中,即为内存;在I/O受限的系统中,即为I/O。
很多系统在达到100% 利用率之前性能会严重下降,所以合理的利用率目标也是很重要的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2021-12-02 优秀的架构师应该在广度、高度、深度、宽度方面都很突出