博客/工程

RED方法:如何检测您的服务

2018年8月2日 4分钟

汤姆·威尔基Tom Wilkie - bob电竞频道Grafana实验室

GrafanaCon欧盟今年3月,我们有幸介绍了Grafana实验室的最新团队成员Tom Wilkie,他作为产品副总裁加入bob电竞频道收购Kausal

他带来了礼物:他在2015年创建的关于监控微服务的RED方法的流行演讲。

使用方法

在演讲中,Tom首先介绍了仪器仪表的使用方法,这是由布伦丹·格雷格:

对于每个资源,监视器:

  • 利用率(资源繁忙的时间%)
  • 饱和度(工作资源的数量,通常是队列长度)
  • 错误(错误事件计数)

他说:“这是一种建立一个检查所有事情的清单的方式。”“它能让你知道自己不知道什么。”但他指出,这种方法虽然有用,但有些抽象。例如,将其应用于记忆就很难。“内存利用率很棘手。是什么?您是否将缓存计算为利用率?他说。“内存饱和是一种奇怪的现象……什么是内存错误?”在Linux中如何计算?”

红色方法

然后,Tom转向了他的RED方法,在一位新员工问他的监控理念是什么之后,他创建了这个方法。“USE方法并不真正适用于服务;它适用于硬件、网络磁盘等,”汤姆说。“我们真的想要一个面向微服务的监控理念,所以我们提出了RED方法。”

对于每个资源,监视器:

  • 速率(每秒请求数)
  • 错误(失败的请求数量)
  • 持续时间(这些请求所花费的时间)

(见他演示文稿的幻灯片普罗米修斯RED方法的实施)

“每个人都应该了解错误率、请求率,以及这些请求的延迟分布,”Tom解释道。“您可以为架构中的每一个服务建模,这为您提供了一个很好的、一致的架构行为视图。提供这种跨服务的一致性可以让你扩展运营团队,并允许你让人们随叫随到地编写他们没有写过的代码。”

此外,他还指出,“红色方法很好地代表了你的客户会有多高兴。如果你有很高的错误率,那基本上是通过你的用户,他们得到页面加载错误。如果你的持续时间很长,你的网站就会很慢。所以这些都是构建有意义的警报和衡量SLA的很好的指标。”

四个黄金信号

最后,汤姆研究了第三种方法:四个黄金信号,这是来自谷歌的SRE书

对于每个服务,监控:

  • 延迟(服务请求所花费的时间)
  • 流量(系统中有多少需求)
  • 错误(请求失败的比率)
  • 饱和度(你的服务有多“满”)

这与RED方法基本相同,但包括饱和度。他解释了一种测量饱和度的方法:“用kube-state-metrics,你在Kubernetes集群上运行的一个小作业,它抓取了Kubernetes API,导出了关于你的作业、服务和pod等的有趣的元数据,你可以比较一个服务正在使用的CPU数量和它的配额。比如它应该用多少,或者允许用多少,在1和0之间的比例。这可以让你衡量你的服务有多“充分”,或者至少可以代表你的服务有多充分。这非常有用,因为你可以在上面建立一个警报。”

同一枚硬币的两面

Tom建议同时使用USE和RED方法。“就像RED方法关心你的用户和他们的快乐程度一样,”汤姆说,“而USE方法关心你的机器和他们的快乐程度。这只是同一系统上的两种不同观点。他们免费。”

在下面的视频中观看汤姆的完整演讲。

视频:RED方法:如何测量你的服务