Databricks 发布 RADAR:用异常检测捕捉灰色故障
Databricks 公开内部系统 RADAR:通过监控用户报错突增来发现灰色故障,发现时间缩短 95%,且可自行复刻。
最危险的故障常常不触发任何告警:一部分用户已在失败,各项健康检查却仍显示正常——这类“灰色故障”(gray failure,整体指标健康、局部却悄悄失效)会持续数小时流失用户和收入。本文介绍 Databricks 内部的 RADAR 系统,如何用实时异常检测在几分钟内发现它们,以及如何在自家业务指标上搭一套同样的机制。
正文摘录
实时异常检测如何在几分钟内抓住那些无声的、局部的故障 —— 以及如何在 Databricks 上构建同样的系统。 有些最具破坏性的故障,恰恰是你的监控永远不会标记的那些:一部分客户在悄悄失败,而每一项健康检查都还读作正常。这类 灰色故障(gray failure,指系统局部已经失效、但所有常规健康指标仍显示正常的故障)会持续数小时地流失用户和收入,直到有人把这些点连起来。本文讲的是如何用异常检测提前抓住它们 —— 我们在 Databricks 如何用一个叫 RADAR 的系统做到这一点,以及你如何为对你业务最重要的任何指标构建同样的东西。这篇文章写给对服务可靠性负责的人:SRE、平台与数据工程师、on-call 值班响应者,以及他们所汇报的工程管理者。 想象一个普通的周三。让一个面向客户的服务保持可靠是你的工作,你墙上每一块仪表盘都是绿的 —— CPU 健康、延迟正常、服务器在线、数据库已连接。按你团队盯着的每一个信号来看,系统都堪称完美。 在将近七个小时里,你的监控坚称一切正常,而客户在流失,收入在漏走。 那个周三就是一次教科书式的灰色故障。表面上一切看起来健康;底下,某一个具体的部件已经悄悄停止工作 —— 它伤害客户,却始终不会触发任何告警。 把它想象成墙里的烟。从外面看,房子一切正常,但里面损害正在扩散 —— 你等得越久,爆炸半径就越大。研究者也给这个底层问题起了名字:微软的 Gray Failure: The Achilles’ Heel of Cloud-Scale Systems 称之为 differential observability(差异化可观测性)—— 你的故障检测器没有注意到问题,哪怕用户已经清清楚楚地感受到了。 大多数团队处理灰色故障的方式,和那个周三的剧本一模一样:等客户来告诉他们。