Skip to content

监控与可观测性

指标/日志/链路追踪三支柱、告警体系、RED/USE 方法。

Updated View as Markdown
For humans

监控与可观测性

没有监控的系统是盲飞的。面试主线:三支柱各解决什么、告警怎么设计、核心指标看什么。

三支柱

支柱 回答的问题 工具
指标(Metrics) 系统现在什么状态 Prometheus + Grafana
日志(Logs) 具体发生了什么 ELK / Loki
链路追踪(Traces) 一个请求经过哪些环节 Jaeger / OpenTelemetry
  • 指标:数值型,聚合查询,用于告警和趋势(QPS、延迟、错误率、资源使用)
  • 日志:事件型,全文检索,用于排查细节(错误堆栈、请求参数)
  • 链路追踪:请求级,串联跨服务调用(哪个环节慢、哪个环节错),OpenTelemetry 是事实标准
  • 三者的关系:指标发现异常 → 日志看细节 → 链路定位环节。面试答出这个协作流程是加分项

核心指标方法

RED 方法(服务维度):

指标 含义 看什么
Rate 请求速率 QPS 波动、突增突降
Errors 错误率 4xx/5xx 比例,错误突增是故障信号
Duration 延迟 P50/P99,长尾恶化

USE 方法(资源维度):Utilization(使用率)、Saturation(饱和度)、Errors(错误)。CPU 使用率、内存、磁盘 IO、连接池饱和(见连接池篇)。

业务指标不能少:订单量、支付成功率、队列积压(lag)。业务指标异常往往是故障的第一信号

告警体系

告警闭环: 触发 → 通知 → 处理 → 复盘

要点 说明
告警分级 P0 电话+IM 立即响应,P1 IM,P2 日报。别全用电话
阈值设计 静态阈值 + 趋势告警(突增突降比绝对值更敏感)
告警疲劳 告警太多会麻木。规则宁少勿滥,每个告警都要能行动
告警必带上下文 什么服务、什么指标、持续多久、预案链接

关键原则:告警要有行动项(收到告警知道干什么),恢复要通知(闭环),事后复盘(为什么告警、为什么没拦住)。

生产实践清单

  1. 服务健康:/healthz 探活(见冗余篇)、进程存活
  2. 基础设施:CPU/内存/磁盘/网络,节点级
  3. 应用层:QPS、RT 百分位、错误率(RED)
  4. 依赖层:Redis/DB/MQ 的连接数、延迟、命中率
  5. 业务层:核心业务指标、队列积压

面试追问

  1. 三支柱的关系? 指标发现异常、日志看细节、链路定位环节。协作而非替代
  2. RED 是什么? Rate/Errors/Duration:请求速率、错误率、延迟。服务健康三件套
  3. 告警怎么设计? 分级通知、阈值加趋势、宁少勿滥、带行动项。告警疲劳是真实问题
  4. 链路追踪怎么实现? OpenTelemetry 埋点,trace_id 贯穿请求,跨服务传递(HTTP 头)。采样控制成本
  5. 业务指标为什么重要? 技术指标正常但业务挂了(如支付失败率升高)才是真故障。业务指标是第一信号
Navigation

Type to search…

↑↓ navigate↵ selectEsc close