Skip to content

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 指标端点