监控方法论(一): Google黄金指标与RED方法和USE方法

背景

在做服务监控的时候,通常会根据不同层次来使用不同的方法论,或者综合使用。这些方法论可以帮助我们来挑选合适的指标,可以直观的表达出服务状态。

黄金指标

Google黄金指标一般用于服务监控,它一共有四个:

  1. 延迟
  2. 流量
  3. 错误
  4. 饱和度

延迟(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方法/
Author
John Doe
Posted on
November 25, 2023
Licensed under