Appearance
L02-19 可观测:知道慢在哪一环
全局中心内容:RAG 链路有五段,没有分段埋点就只能猜。 全局讲解主线:一个「很慢」的投诉 → 分段埋点 → 关键指标 → 追踪串联 → 看板 → 告警。
P1 · 产出页
中心内容:五段耗时埋点 + 一个能定位瓶颈的 Grafana 看板。
- 讲解技巧
- 开场场景:用户说「很慢」,你看日志只有一个总耗时 8 秒。
- 提问:是检索慢、Rerank 慢还是生成慢?——没人知道。
- 时长:20s
P2 · 五段埋点
中心内容:改写 / 检索 / Rerank / 拼装 / 生成,每段单独计时。
页面内容:分段耗时示意条形图
讲解技巧
- 强调「拼装」这段也要埋:Prompt 很长时序列化也有成本,容易被忽略。
- 给一个判断依据:哪一段占比最高就优化哪一段,别凭直觉。
时长:5min
P3 · 关键指标
中心内容:耗时分位数、每段的成功率、缓存命中率、Token 消耗。
- 讲解技巧
- 重点讲 P95 而不是平均值:平均 1 秒可能 P95 是 8 秒,用户体验由长尾决定。
- 提醒要开 percentiles-histogram,否则 Prometheus 算不出分位数。
- 时长:5min
P4 · 链路追踪
中心内容:一次问答串一条 trace,每段一个 span。
页面内容:trace 树形结构示意
讲解技巧
- 讲清 trace 的价值:能回答「这个用户这次为什么慢」,而指标只能回答「整体慢」。
- 提醒采样策略:高 QPS 用比例采样,但要保证错误请求 100% 采样。
时长:5min
P5 · 日志规范
中心内容:一条问答一条结构化日志,带 traceId 和分段耗时。
页面内容:日志字段清单
讲解技巧
- 强调日志要能反查:通过 traceId 能捞到这次问答用的哪些片段,这是排查 bad case 的关键。
- 提醒:片段原文不要全量打日志,存 ID 即可,避免日志膨胀。
时长:4min
P6 · 看板与告警
中心内容:四个必看面板 + 三条必配告警。
页面内容:耗时趋势 / 错误率 / 成本 / 召回质量
讲解技巧
- 给告警建议:P95 耗时突增、错误率超阈值、日成本超预算。三条足够,多了会麻木。
时长:4min
P7 · 编码:埋点实现
中心内容:Micrometer Timer + Observation,统一在 Advisor。
页面内容:MetricAdvisor 片段
讲解技巧
- 强调用 Timer.record 包住每一段,别手写 System.currentTimeMillis。
时长:4min
P8 · 避坑与小结
中心内容:可观测不是为了画图,是为了能在 5 分钟内定位问题。
- 讲解技巧
- 引出下一节:把前面所有东西组装成完整项目——02-20 灌库管道。
- 时长:2min
讲师备忘
| 项 | 内容 |
|---|---|
| 课前必做 | 准备一张分段耗时条形图;准备一条 trace 截图 |
| 最容易超时处 | P3 指标部分,Prometheus 细节容易展开 |
| 学员最常问 | 「要不要上 SkyWalking?」答:先 Micrometer + 日志,够用再上 APM |
| 现场备用 | 无 Grafana → 展示 Actuator 指标端点 |