基础设施、云与 DevOps · 综合
监控与可观测性:在客户之前知道有东西坏了
一句话: 三类信号——指标、日志和链路追踪——以及它们必须回答的一个问题:现在发生了什么,为什么。
度量什么
从四个开始:请求速率、错误率、尾部响应时间,以及资源饱和度。再加一个业务指标——每小时订单数、注册数、发送量——它会抓到基础设施看不见的故障。
平均响应时间会骗人。看95和99百分位;愤怒的用户在那里。
有用的日志
结构化的,带一个贯穿整个系统的请求标识,并且不含不必要的个人信息。自由文本的日志是档案,不是排查工具。
不会让人麻木的告警
对用户能感受到的症状告警,而不是对每一个技术异常告警。每条告警都要包含发生了什么、影响是什么、第一步该做什么。没有对应动作的告警——删掉。告警疲劳是错过真实故障的头号原因。
深入一层
加上分布式链路追踪,展示一个请求在各组件之间的路径和各段耗时。在拆分开的系统里,这是在不靠猜的前提下回答「为什么这花了三秒」的唯一方法,并且能把排查从几小时缩短到几分钟。