跳到主内容
快讯直播
AI智模界
AI 词典

日志采样:别让随机丢日志毁掉可观测性

一句话定义:日志采样(Log Sampling)是在日志落盘或上报之前,按某种规则只保留其中一部分记录,用可承受的存储成本换取对系统行为的近似观察。

为什么 AI 应用尤其躲不开它

传统服务的日志一行几十字节,而 AI 应用的一条日志里常常塞着 prompt、检索到的文档片段、模型输出、工具调用参数,动辄几十 KB。请求量一上来,日志体积增长比流量还快。全量留存通常撑不了多久,于是有人随手加一行“按 1% 概率保留”,问题就从“贵”变成了“瞎”。

打个比方

高架桥上的监控。每辆车都存高清录像,硬盘一周就满。合理做法是:平时每秒抽几帧,用来估算车流密度;一旦雷达检测到急刹或碰撞,立刻切全量录像并打红标。前者回答“今天堵不堵”,后者回答“那场事故怎么发生的”。这两件事需要的数据根本不是同一批。

按比例随机丢日志,相当于连事故录像也一起抽掉了。

几种常见策略的区别

策略决策时机好处代价
头部采样(head-based sampling)请求入口实现简单、开销极低看不到结局,错误请求大概率被抽走
尾部采样(tail-based sampling)请求结束后出错、超时、被用户点踩的链路全部保留需要先缓冲全量数据再判定,架构更重
错误优先保留(error-biased sampling)写入或上报时改造成本低,排查时最有用统计口径有偏,不能直接拿来算真实错误率

关键洞察是:错误是低频事件。0.1% 的错误率遇上 1% 的随机采样,几乎一条错误日志都留不下;而正常请求丢掉 99% 通常无所谓。所以合理的做法往往是“成功按比例丢、失败全量留”。但要记得同时记录采样率,用权重把平均值、成功率还原回去,否则监控面板上的数字会系统性失真。

对从业者的实际意义

排查线上问题时,prompt 和模型输出往往是最关键证据,也恰恰是最占体积的部分。把采样配成无差别随机丢弃,等于随机毁掉证据链。此外,别让同一套采样策略顺手把评测(eval)和训练数据回流的数据源也砍了,那属于另一条链路,需要单独设定。

对普通职场人来说,这也解释了一个常见困惑:用户投诉的那个偶发 bug,客服为什么查不到,很多时候不是没人管,而是那条日志早就被采样丢掉了。

具体产品的采样开关和配置项,以官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。