可观测性与 SRE:从 SLI/SLO 到事故响应与混沌工程
0. 元信息
- 主题路径:
docs/topics/observability-and-sre/README.md - 主分类:工程技术
- 辅助分类:安全与可靠性
- 适合对象:写过 Docker / Linux 命令行、想把服务从「能跑」升级到「可观测、可恢复」的开发者与运维
- 建议周期:6~10 周(每周 8~12 小时,至少一半时间用于真机/集群实验与故障演练)
- 前置知识:
linux-dev-env、docker-basics、network;熟悉 Linux 命令、Docker / Compose、基本后端知识 - 最终目标:能为一个中等规模的微服务系统定义 SLI / SLO、部署 Prometheus / Grafana / Loki / Tempo / OpenTelemetry、设计告警分级、用 Chaos Mesh / Litmus 做故障演练,并在事故发生时主导 Incident Response 写 Postmortem
1. 学习路线
Metrics / Logs / Traces 三支柱 + OpenTelemetry 采集
→ SLI / SLO / 错误预算 / 告警分级
→ Prometheus / Grafana / Loki / Tempo / Alertmanager 实战
→ 混沌工程 / 容量规划 / Runbook / SOP / 事故响应与 Postmortem
按「先观测 → 再 SLI/SLO → 再告警 → 最后混沌与事故」的顺序学。每个子主题对应一段能力,最后用综合项目把可观测、SLO、混沌、Postmortem 串起来。
2. 阶段周数分配
| 阶段 | 6 周方案 | 10 周方案 | 备注 |
|---|---|---|---|
| 1. 三支柱 + OpenTelemetry | 1.5 | 2 | Metrics / Logs / Traces + OTLP |
| 2. SLI / SLO / 错误预算 | 1 | 1.5 | SLI 选择、4 个 9、错误预算 |
| 3. Prometheus / Grafana / Loki / Tempo | 1.5 | 2 | 指标 + 日志 + Trace 一站式 |
| 4. 告警分级、Incident Response、Postmortem | 1 | 2 | 值班、Runbook、SOP |
| 5. 混沌工程与容量规划 | 1 | 2.5 | Chaos Mesh / Litmus、USL、SLO 推容量 |
6 周方案只跑通最小闭环;10 周方案多出时间做混沌演练与容量压测。综合项目占最后一周。
3. 九阶段表
| 阶段 | 核心知识 | 实践产出 | 可观察学会标准 |
|---|---|---|---|
| 1. 三支柱 | Metrics / Logs / Traces 定义与差异 | 一份三支柱对比表 + 采集方案 | 能解释高基数、低基数、采样与上下文传播 |
| 2. OpenTelemetry | OTLP、Collector、SDK、自动注入与手动埋点 | 一个 OTel Collector + 3 个服务的 Trace 串联 | traceid 串联前后端与服务 |
| 3. SLI / SLO | 选 SLI、4 个 9 反推、错误预算 | 一份 SLO 文档 + 预算看板 | 能用 SLI 公式推导月度错误预算 |
| 4. Prometheus | PromQL、Recording Rule、Alert Rule、Remote Write | 一份 PromQL 查询集 + 5 条告警 | 能用 PromQL 算 P99 与 burn rate |
| 5. Grafana | 仪表盘、变量、Explore、告警联动 | 一份 RED / USE 看板 JSON | 能讲清 RED vs USE |
| 6. Loki + Tempo | 日志标签、TraceQL、Grafana 联动 | 日志 → Trace → 指标三向跳转 | 能用 traceid 反查日志与指标 |
| 7. 告警分级与值班 | Sev 1~4、轮值、噪声抑制、抑制规则 | 一份告警分级表 + Runbook | 能用 burn rate 多窗口告警 |
| 8. Incident Response 与 Postmortem | IC / Comm / Ops / Postmortem、blameless、action items | 1 次模拟事故 + 1 份 Postmortem | 能主持 30 分钟 IC 会议 |
| 9. 混沌工程与容量 | Chaos Mesh / Litmus、USL、SLO 推容量 | 1 次预发故障演练 + 容量压测 | 能用 steady-state hypothesis 设计演练 |
关键陷阱:把 Metrics 当 Logs;告警只看阈值不分类;Postmortem 写成追责报告;混沌只在测试环境做一次;SLO 设完不看板。
4. 第一周任务
Day 1 约定:本计划以 Linux + Docker + 一台 8G 内存的机器为最小实验环境。所有实验记录版本、容器镜像 tag、抓取时间与数据集。
| 日 | 任务 | 当天交付 |
|---|---|---|
| Day 1 | 装 Docker / docker-compose / kind / minikube;用 docker --version、docker compose version 自检 | 环境清单 |
| Day 2 | 起一个 Prometheus + Grafana + Alertmanager 的 Compose 栈;接入一个 node_exporter | 一份 Compose YAML + Grafana 看板 |
| Day 3 | 写一个最小 Flask / FastAPI 服务,暴露 /metrics;用 prometheus_client 暴露 RED 指标 | 一个 Python 服务 + RED 指标 |
| Day 4 | 用 client_golang 暴露 Go 服务指标;对比 Python 指标差异 | Go 服务指标 |
| Day 5 | 装 OpenTelemetry Collector,配置 OTLP gRPC / HTTP receiver;接入 Python / Go SDK | Collector 配置 + 双语言 SDK |
| Day 6 | 在 Flask / FastAPI 接入 Loki;写一条结构化日志;用 Grafana 查日志 | 一份 Loki 数据源 + 日志查询 |
| Day 7 | 步骤 A:跑通「最小可观测闭环」(指标 + 日志 + Trace + Grafana 看板 + Alertmanager 邮件);步骤 B:补齐 4 类边界(指标抓取失败 / Collector 重启 / 日志丢 / traceid 断链) | 一份闭环 Compose + 故障演练记录 |
Day 7 步骤 A 只求链路完整:服务 → SDK → Collector → Prometheus / Loki / Tempo → Grafana。步骤 B 每次只改变一个条件(关掉服务 / kill Collector / 清空 Loki / 关闭 SDK)。
5. 阶段通用验收
- 不看答案独立重写一个三支柱 Collector 配置;
- 用自己的话解释 SLI / SLO / Error Budget 各自解决什么问题;
- 画一张图:服务 → SDK → Collector → 后端 → Grafana;
- 测试正常路径、Collector 重启、抓取失败、日志丢、traceid 断链四类边界;
- 至少准备 3 组自定义指标 / 日志 / Trace 数据;
- 记录 P50 / P95 / P99、错误率、饱和度、SLI 命中率 4 个核心指标;
- 能修改既有服务加 OTel、加告警、加 Runbook,并验证。
6. 最终验收
- 独立画出 Metrics / Logs / Traces 三支柱与 OpenTelemetry 采集架构图;
- 完成至少 30 个实验:三支柱 8 个、Prometheus 8 个、SLO 6 个、混沌与事故 8 个;
- 完成 1 个综合项目:微服务 Demo + SLI/SLO + Grafana 看板 + Alertmanager 告警 + 一次混沌演练 + Postmortem;
- 能用 15 分钟讲清「为什么 SLO 不止 4 个 9、为什么告警分级比阈值重要、为什么混沌要在预发做」。
7. 综合项目
首选:用 docker-compose / kind 起一个 3 服务微服务(API / Worker / DB)+ Prometheus + Grafana + Loki + Tempo + OTel Collector + Alertmanager,定义 3 个 SLO、配置 5 条分级告警、跑一次混沌演练(kill 一个服务 / 注入 30% 延迟 / 把 DB 切到只读)、写 1 份 Postmortem。
- 必输出:(1)Compose / Helm 部署清单;(2)OTel Collector 配置;(3)Grafana 看板 JSON(RED + USE + SLO);(4)Prometheus 告警规则;(5)Runbook(Sev 1~4 各一份);(6)一次故障演练录像;(7)Postmortem(含时间线、影响、根因、action items);
- 关键指标:可用性 99.9%、P99 延迟 < 500ms、错误预算月度未耗尽;
- 进阶可选:接入 PagerDuty / OpsGenie、用 OTel Kubernetes Operator 注入 sidecar、用 LitmusChaos 做集群级演练。
备选:用 Kubernetes(kind)做同一份需求。
备选:把一个生产事故日志(脱敏后)按本计划走一遍 IR + Postmortem。
备选:用 eBPF + Prometheus 做基础设施可观测。
任何综合项目都必须包含:
- 需求与 SLO(可用性 / 延迟 / 错误率);
- 三支柱 + OTel 采集架构图;
- SLI 公式与 SLO 文档;
- Grafana 看板 JSON(RED + USE + SLO 预算);
- Prometheus 告警规则(含 burn rate 多窗口);
- Runbook 与 SOP(Sev 1~4);
- 一次故障演练录像与记录;
- Postmortem(时间线、影响、根因、action items);
- 复盘
notes/retrospective.md。
8. 推荐开源资料
默认使用顺序:先读 SRE Book 第 1~4 章建立 SLO 思维 → 装 Prometheus / Grafana / Loki / Tempo 起一个最小栈 → 接入 OTel SDK 与 Collector → 定义 SLO 与告警 → 写 Runbook → 做混沌演练 → 模拟事故 → 写 Postmortem → 复盘到
notes/retrospective.md。
9. 学习资料汇聚(v0.3 自包含)
本节由本计划生成。链接指向原始材料或作者公开内容。规范与版本会演进,实验记录必须写明版本与日期。
9.1 背景与动机
可观测性(Observability)这个词来自控制论。系统越复杂、内部越不可见,越需要从外部输出反推内部状态。分布式系统从单机能解决到多机协作,监控从「ping + uptime」升级到「Metrics + Logs + Traces」三支柱。
2003 年 Google 成立 SRE 团队,把运维工程化:Service Level Objective(SLO)、Error Budget、Toil、Incident Response、Postmortem 成为行业模板。2014 年 Prometheus 借鉴 Borgmon 思路发布,把 pull-based 时序数据库、PromQL、多维标签写成事实标准。2017 年 OpenTelemetry 把 Metrics / Logs / Traces 三件套合并到同一 SDK 与协议。2019 年 Grafana Labs 推出 Loki(日志)与 Tempo(Trace),与 Prometheus 组成 Grafana Stack。
今天一个中等规模系统每天产生 TB 级日志、百万级指标 span、千亿级 Trace。可观测不是「装上 Prometheus」,而是「用 SLI/SLO 量化服务、用三支柱快速定位、用混沌主动验证、用 Postmortem 持续改进」的工程闭环。
9.2 概念地图
flowchart LR
Service[微服务] --> SDK[OTel SDK / Prometheus client]
SDK --> Collector[OTel Collector]
SDK --> Prom[Prometheus scrape]
Prom --> PromDB[(Prometheus TSDB)]
Collector --> Loki[(Loki)]
Collector --> Tempo[(Tempo)]
PromDB --> Grafana
Loki --> Grafana
Tempo --> Grafana
Grafana --> Alert[Alertmanager]
Alert --> PagerDuty[PagerDuty / OpsGenie]
SLO[SLI/SLO] --> Prom
SLO --> Burn[Burn Rate 告警]
Burn --> Alert
Chaos[Chaos Mesh / Litmus] -.故障注入.-> Service
IR[Incident Response] --> IC[IC / Comms / Ops]
IC --> PM[Postmortem]
PM -.action items.-> Service
核心关系:服务通过 SDK 与 exporter 把数据送到 Collector / Prometheus;Grafana 把数据可视化并触发告警;SLO 是告警阈值与预算来源;混沌验证 SLO 是否真实可达;事故与 Postmortem 形成反馈环。
9.3 基础知识讲解
9.3.1 经典论文 / 规范
| 资料 | 影响 | 建议读法 |
|---|---|---|
| Google, SRE Book(O’Reilly, 2016) | SLO / Error Budget / Toil / IR 整套 | 第 1 |
| Google, SRE Workbook(O’Reilly, 2018) | SLO 落地、IR、Postmortem 实战 | 与 SRE Book 对照 |
| Rob Ewaschuk, Implementing Service Level Objectives(O’Reilly, 2020) | SLO 反推 4 个 9 与预算 | 短而精 |
| Brendan Gregg, Systems Performance(2nd ed., 2020) | USE 方法、USL、内核观测 | 第 2 章 + 第 6 章 + 第 12 章 |
| Charity Majors et al., Observability Engineering(O’Reilly, 2022) | 可观测工程化 | 第 4~6 章 |
| OpenTelemetry Specification | Metrics / Logs / Traces 数据模型 | 1.x 版本 |
| Prometheus 查询规范 | PromQL / Recording Rule | 与 OpenMetrics 对照 |
| USL 论文(Neil Gunther) | 可扩展性定量分析 | 与 Little’s Law 对照 |
9.3.2 经典书籍
| 书 | 影响 | 用法 |
|---|---|---|
| Betsy Beyer et al., Site Reliability Engineering(O’Reilly, 2016) | SRE 圣经 | 第 1 |
| Niall Murphy et al., Site Reliability Workbook(O’Reilly, 2018) | SRE 实战 | 全书 |
| Rob Ewaschuk, Implementing Service Level Objectives | SLO 落地 | 短而精 |
| Brendan Gregg, Systems Performance | 性能与观测方法 | 第 2 + 6 + 12 章 |
| Charity Majors et al., Observability Engineering | 可观测工程 | 第 4~6 章 |
| Casey Rosenthal et al., Chaos Engineering(O’Reilly, 2017) | 混沌概念 | 全书 |
| Michael Nygard, Release It!(2nd ed., 2018) | 稳定性反模式 | 第 6~8 章 |
9.3.3 优秀博客
| 资料 | 特点 | 用法 |
|---|---|---|
| Google SRE Blog | SRE 一手材料 | 选 5 篇 Postmortem 与 SLO |
| Grafana Blog | Loki / Tempo / Mimir 实战 | 选 5 篇三支柱案例 |
| Prometheus Blog | PromQL / 集成 | 选 3 篇 burn rate 与远端写 |
| OpenTelemetry Blog | OTel SDK 与 Collector | 选 5 篇实战 |
| Charity Majors | 可观测工程化 | 配合 Observability Engineering |
| Brendan Gregg | 性能与 USL | 选 5 篇 |
| Netflix Tech Blog | 混沌与事故 | 选 3 篇 |
| GitHub Engineering | SLO 与告警 | 选 3 篇 |
| AWS Builder’s Library | 避坑文章 | 选 5 篇 |
9.3.4 核心人物
| 人物 | 主要影响 | 建议追踪的材料 |
|---|---|---|
| Ben Treynor Sloss | Google SRE 创始人 | SRE Book 前言 |
| Betsy Beyer | SRE Book 编辑 | SRE 后续书籍 |
| Charity Majors | Honeycomb / 可观测工程 | Observability Engineering |
| Lorin Hochstein | Chaos Engineering | Chaos Engineering |
| Casey Rosenthal | Netflix Chaos Monkey | Chaos Engineering |
| Rob Ewaschuk | SLO 反推 4 个 9 | Implementing SLOs |
| Brendan Gregg | 性能方法 | Systems Performance |
| Björn Rabenstein | Prometheus 核心 | Prometheus 文档与博客 |
| Frederic Branczyk | Prometheus / OpenMetrics | 推文与博客 |
| Bryan Boreham | Grafana Pyroscope / Faro | Grafana 博客 |
9.3.5 开发方法
| 方法 | 具体动作 | 何时用 |
|---|---|---|
| SLI-first | 先选 SLI(延迟 / 错误率 / 饱和度)再设 SLO | 任何服务上线 |
| Multi-window burn rate | 1h + 6h + 24h + 3d 多窗口告警 | Prometheus 告警 |
| RED for services | Rate / Errors / Duration 三件套 | 服务可观测 |
| USE for resources | Utilization / Saturation / Errors | 资源可观测 |
| Steady-state hypothesis | 注入故障前后定义稳态指标 | 混沌演练 |
| Blameless Postmortem | 不追责人,追责系统 | 任何 P0/P1 |
| Action items with DRI | 每条 action item 有负责人与 deadline | Postmortem |
| Single-variable chaos | 一次只注入一种故障 | 任何演练 |
| Trace as contract | traceid 进入日志与告警 | 跨服务排障 |
| Runbook as code | Runbook 放进 Git / wiki | 值班必备 |
9.3.6 重点训练材料
- SRE Book 第 1~4 章:SLO / Error Budget / Toil / Eliminating Toil。
- SRE Workbook 第 4 章:Incident Response。
- SRE Workbook 第 5 章:Postmortem 文化。
- Prometheus 官方文档:PromQL、Recording Rule、Alert Rule。
- OpenTelemetry 官方文档:SDK / Collector / OTLP / 语义约定。
- Observability Engineering 第 4~6 章:high cardinality / wide events / unknown unknowns。
- Chaos Engineering(O’Reilly):稳态假设 + 爆炸半径 + 持续演练。
9.4 经典问题与经典案例
| # | 问题 | 为什么会重要 | 最简答案或图示 |
|---|---|---|---|
| 1 | SLI / SLO / SLA 区别 | SLI 是指标;SLO 是目标;SLA 是合同 | SLI 用 latency / error_rate;SLO 用 99.9% |
| 2 | 4 个 9 怎么反推 | 月度 99.9% = 43.2 分钟预算 | (1 - SLO) × 月分钟数 |
| 3 | burn rate 怎么算 | 短窗口反映事故;长窗口反映趋势 | 多窗口(1h/6h/24h/3d) |
| 4 | RED vs USE | 服务 vs 资源 | RED(Rate/Errors/Duration);USE(Utilization/Saturation/Errors) |
| 5 | 高基数指标为什么危险 | Prometheus TSDB 索引膨胀 | 用日志 / Trace 替代;避免 user_id 作 label |
| 6 | Trace context 怎么传播 | W3C Trace Context / B3 | OpenTelemetry 自动注入 |
| 7 | 告警分级怎么做 | 噪声会让人麻木 | Sev 1/2/3/4 + 优先级 + 抑制规则 |
| 8 | 噪声抑制怎么做 | 同源告警淹没信号 | route / inhibit / silence |
| 9 | Postmortem 怎么写 | 不写成追责报告 | 时间线 + 影响 + 根因 + action items |
| 10 | 混沌演练怎么起步 | 爆炸半径与稳态假设 | 先预发 + 单变量 + 短时长 |
| 11 | capacity plan 怎么算 | DAU × 读写比 × 峰值倍数 × 对象大小 | USL 反推最优节点数 |
| 12 | IR 中 IC 谁当 | 第一次 IC 谁来 | 按服务 ownership 轮值 |
| 13 | on-call 怎么不疲劳 | 告警过多 | Sev 1 值班轮值;Sev 2/3 邮件 |
| 14 | 告警阈值怎么设 | 不能凭感觉 | 用 SLI + burn rate 反推 |
| 15 | 错误预算耗尽怎么办 | 必须停 feature | 用 budget policy 决定暂停发版 |
9.5 学习难点
概念难点
| 难点 | 为什么会卡 | 突破路径 |
|---|---|---|
| SLI vs SLO vs SLA | 概念混用 | 用具体数字写三个定义 |
| 高基数 vs 低基数 | label 选错 | 看 Prometheus 文档 + 实战采样 |
| wide events vs metrics | 习惯窄事件 | 读 Honeycomb 博客 |
| Burn rate 多窗口 | 公式复杂 | 用 Google SRE Workbook 案例 |
思维难点
| 难点 | 为什么会卡 | 突破路径 |
|---|---|---|
| 从监控到可观测 | 「告警正常」≠「服务正常」 | 用 unknown-unknowns 视角 |
| 告警噪声治理 | 阈值随手设 | 用 SLO + burn rate 反推 |
| 事故定位 | 跨服务慢 | 用 traceid 串联 |
| Postmortem 不追责 | 文化 | blameless 训练 + action items 跟 DRI |
工程难点
| 难点 | 为什么会卡 | 突破路径 |
|---|---|---|
| Collector 调优 | batch / memory / retry 不平衡 | 看官方 tuning 文档 + 监控 Collector 自身 |
| Prometheus 远端写 | 本地存储不够 | 接 Mimir / Thanos / Cortex |
| Trace 采样策略 | 全采样成本高 | head sampling + tail sampling |
| 告警路由复杂 | 路由树混乱 | 用 Alertmanager 分组 + 抑制 |
| 混沌平台接入 | 生产不敢注入 | 先在预发演练;用 blast radius 控制 |
9.6 技术标准与接口
9.6.1 Entity
| 名称 | 版本 / 文档 | 发布组织 | 状态 | 许可证 / 可访问性 |
|---|---|---|---|---|
| Prometheus | 2.x | Prometheus 社区 | 活跃 | Apache-2.0 |
| Grafana | 10.x | Grafana Labs | 活跃 | AGPL-3.0 |
| Loki | 2.x | Grafana Labs | 活跃 | AGPL-3.0 |
| Tempo | 2.x | Grafana Labs | 活跃 | AGPL-3.0 |
| Mimir | 2.x | Grafana Labs | 活跃 | AGPL-3.0 |
| OpenTelemetry | 1.x | CNCF | GA | Apache-2.0 |
| OpenTelemetry Collector | contrib | CNCF | GA | Apache-2.0 |
| Alertmanager | 0.27+ | Prometheus 社区 | 活跃 | Apache-2.0 |
| Chaos Mesh | 2.x | CNCF | 活跃 | Apache-2.0 |
| LitmusChaos | 3.x | CNCF | 活跃 | Apache-2.0 |
| Gremlin | SaaS | Gremlin Inc. | 商用 | 闭源 |
| USL | 论文 | Neil Gunther | 经典 | 公开 |
9.6.2 Scope
- Metrics / Logs / Traces 三件套:可观测的「三大支柱」,分别回答「多少 / 为什么 / 哪里」。
- OpenTelemetry:跨语言 SDK + 协议 + Collector + 语义约定。
- Prometheus / Grafana / Loki / Tempo / Mimir:开源可观测后端。
- SLI / SLO / Error Budget:可观测的「量化锚点」。
- Chaos Mesh / LitmusChaos:故障注入工具。
- Incident Response / Postmortem:事故管理流程。
9.6.3 Structure
- OTel SDK 接口:
MeterProvider、TracerProvider、LoggerProvider、exporter、自动注入与手动埋点。 - PromQL:聚合函数(rate / histogram_quantile / sum by)、Recording Rule、Alert Rule。
- Alertmanager:route / inhibit / silence / grouping。
- Grafana:数据源(Prometheus / Loki / Tempo)+ 仪表盘(panels + variables)。
- W3C Trace Context:
traceparent/tracestate头。 - OpenMetrics:Prometheus 暴露格式。
9.6.4 Ecosystem
- 监控:Prometheus、Grafana、Datadog、New Relic、Thanos、Cortex、Mimir。
- 日志:Loki、ELK、Fluent Bit、Grafana Loki、Vector。
- Trace:Tempo、Jaeger、Zipkin、Datadog APM、New Relic。
- 告警:Alertmanager、PagerDuty、OpsGenie、Grafana Alerting。
- 混沌:Chaos Mesh、LitmusChaos、Gremlin、ChaosBlade、AWS Fault Injection Service。
- 排障:eBPF + Pixie + kubectl-debug + Polar Signals。
9.6.5 Depth Tiers
| 层级 | 能力 | 可观测性主题的可观察标准 |
|---|---|---|
| L0 | 知道存在 | 知道 Metrics / Logs / Traces 与 SLI / SLO 各自解决什么问题 |
| L1 | 看得懂示例 | 能读懂 Grafana 看板、PromQL 查询、Postmortem |
| L2 | 能正确调用 | 能装 Prometheus / Grafana / Loki / Tempo 与 OTel Collector,定义 SLO |
| L3 | 能解释与排错 | 能用三支柱定位跨服务事故,设计 burn rate 告警,写 Postmortem |
| L4 | 能设计与扩展 | 能为大型系统设计可观测平台、设计混沌演练、设计容量规划 |
本计划目标:L3。综合项目可触及局部 L4,但不作为 6~10 周的硬门槛。
9.6.6 Source
- Google SRE Book
- Google SRE Workbook
- OpenTelemetry Documentation
- Prometheus Documentation
- Grafana Documentation
- Chaos Mesh Documentation
- Brendan Gregg 主页
- Charity Majors 主页
- 引用版本快照日期:2026-07-30。规范与版本会演进,使用前再核对当前版本。
10. 常见误区
- 把 Metrics 当 Logs,丢高基数信息;
- 告警阈值随手设,不分 Sev 等级;
- SLO 设完不看板,到事故才发现预算耗尽;
- Postmortem 写成追责报告,没有 action items;
- 混沌只在测试环境做一次,没有稳态假设;
- OTel Collector 不调优,batch 太大内存爆;
- Prometheus 高基数 label(user_id)撑爆 TSDB;
- Trace 全采样成本高,不做 tail sampling;
- on-call 告警噪声淹没值班;
- 用平均值掩盖 P99;
- IR 没人主导 IC,会议拉跨服务;
- 容量规划靠经验,不算 USL;
- 错误预算耗尽也不停 feature;
- Alertmanager 路由混乱,告警雪崩;
- 监控只看 CPU / 内存,不看饱和度与错误率。
11. 所有知识点分类(统一规则)
- 编程语言
- 数据结构与算法
- 计算机基础
- 工程技术
- Web 与后端
- 前端与客户端
- 数据与人工智能
- 项目与职业能力
- 安全与可靠性
本计划归属:工程技术 主 + 安全与可靠性 辅。