核心要点

  • 每次请求记全:输入、输出、模型、参数、token 数、延迟、错误码,并打 trace_id 串起整条链路

  • 盯核心指标:P95/P99 延迟、错误率、token 成本、缓存命中率、(可选)质量分

  • 配告警:错误率/延迟/成本突增时实时通知,留 badcase 样本供复盘

  • 日志脱敏 PII,注意合规与存储成本,敏感字段加密或掩码

标准回答

记什么:结构化日志

每次调用落一条结构化日志:trace_id、用户/会话 id、模型与参数、输入 prompt、输出内容、输入/输出 token 数、延迟、错误码、是否命中缓存。RAG/Agent 场景还要记检索片段、工具调用链,用同一个 trace_id 把多步串成一条链路(trace),方便定位是哪一步出问题。

看什么:核心指标

做仪表盘盯 P95/P99 延迟(均值会掩盖长尾)、错误率、按模型/功能拆的 token 成本、缓存命中率。质量侧可抽样跑 LLM-as-judge 或人工标注打质量分,监控幻觉/拒答比例。

怎么报警

对错误率、延迟、成本设阈值,突增时实时告警到群/值班。把触发告警和用户反馈差评的 case 自动归集成 badcase 集,定期复盘改 prompt 或调模型。

别忘脱敏

日志里常含用户隐私(PII),要按字段脱敏或掩码、敏感数据加密,控制留存周期,满足合规并控制存储成本。可直接用 LangSmith、Phoenix 等 LLM 可观测平台省去自建。

常见误区

⚠️ 常见踩坑

只监控均值延迟和系统存活,忽略 P95 长尾和输出质量——模型「能返回但答得很差」是不会触发系统告警的;另一个坑是原样记录用户输入导致 PII 泄露。

追问

追问 1大模型应用的监控和传统后端监控有什么不一样?

传统后端关心 QPS、延迟、错误率即可;大模型多了三类特有维度:token 成本(直接花钱,要按功能拆账)、输出质量(能返回但答错,需抽样评测而非看状态码)、以及多步链路(RAG 检索、Agent 工具调用要串成 trace 才能定位是哪一步坏的)。

追问 2怎么离线复盘线上 badcase?

把告警和用户差评的请求按 trace_id 还原完整输入/检索/输出,归集成 badcase 数据集,人工或 LLM 标注问题类型(幻觉、格式错、检索没命中等),针对性改 prompt、补知识库或调参,再用这个集合做回归,验证修复没有引入新问题。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。