监控方法论(一): Google黄金指标与RED方法和USE方法
背景
在做服务监控的时候,通常会根据不同层次来使用不同的方法论,或者综合使用。这些方法论可以帮助我们来挑选合适的指标,可以直观的表达出服务状态。
黄金指标
Google黄金指标一般用于服务监控,它一共有四个:
- 延迟
- 流量
- 错误
- 饱和度
延迟(latency)
延迟表示这个服务所消耗的时间,比如说用户获取商品列表这个接口一共花了30毫秒;用户启动虚拟机,消耗20毫秒等等;但是这个指标需要区分成功和失败两种情况,比如说调用失败,可能延迟非常低,就没什么意义,还会影响到正常延迟数据。
流量(Traffic)
这里可以简单理解成请求数量,比如说HTTP服务就是HTTP请求次数,RPC就是每秒RPCCall数量;
错误(error)
请求失败的速率,即每秒有多少请求失败,比如 HTTP 请求返回了 500 错误码,说明这个请求是失败的,或者虽然返回的状态码是 200,但是返回的内容不符合预期,也认为是请求失败。
饱和度(Saturation)
描述应用程序有多“满”,或者描述受限的资源,比如 CPU 密集型应用,CPU 使用率就可以作为饱和度指标。
RED方法轮
Weaveworks工程师认为饱和度比较高级,觉得延迟、流量、错误这三个指标相对更重要,所以将其简化为 RED 方法。
- (Request) Rate: 请求速率,每秒请求数
- (Request)Errors: 错误,每秒错误请求数。
- (Request)Duration: 延迟,每个请求的延迟分布情况。
需要注意一点RED适用于应用相关,比如微服务中会使用的更多一点。
USE方法论
USE方法轮是Brendan Gregg发明的,主要是以下三个指标:
- 利用率(Utilization): 比如内存使用率、CPU 使用率等,是一个百分比。
- 饱和度(Saturation): 资源排队工作的指标,无法再处理额外的工作。通常用队列长度表示,比如在 iostat 里看到的 aqu-sz 就是队列长度。
- 错误(Error): 资源错误事件的计数。比如 malloc() 失败次数、通过 ifconfig 看到的 errors、dropped 包量。有很多错误是以系统错误日志的方式暴露的,没法直接拿到某个统计指标,此时可以进行日志关键字监控。
USE主要是分析资源问题的,他对模型的定义是服务器上的硬件资源,比如说CPU,磁盘,内存等等。通过USE可以更快定位到系统瓶颈。
监控方法论(一): Google黄金指标与RED方法和USE方法
http://example.com/2023/11/25/监控方法论-一-Google黄金指标与RED方法和USE方法/