首页/AI/大模型部署与运维速查/错误分类:让错误率有意义
运维监控与排障50 条

错误分类:让错误率有意义

先把错误分层:客户端错误(400 参数/401 鉴权/429 限流)不计入服务故障,服务端错误(5xx)与超时单独统计;口径固定后,错误率才能作为告警与 SLO 依据。

先把错误分层

要让错误率这个数字有意义,先得给错误分类:客户端错误(参数不合法、鉴权失败、被限流)不该计入服务故障,服务端错误(5xx)与超时才算。口径一旦固定下来,错误率才能作为告警与 SLO 的依据,也才能和业务方对得上账。

基本信息

参数错误请求无效,客户端侧
鉴权错误401/403,网关拒绝
429限流或过载,保护性
5xx服务侧失败,计入故障
超时单独归类看趋势

典型使用场景

  • 给 SLO 定义错误率的分子与分母
  • 区分「服务坏了」与「用户传错了」
  • 做分级告警,避免阈值钝化
  • 与业务方对账时口径一致
  • 复盘时判断真实影响面
  • 给业务方提供分层后的错误看板,避免把客户端错误当成服务问题
  • 把口径写进运行手册,交接时逐条确认一遍
  • 把分层规则写进网关配置的注释,新人接手时能直接看懂
  • 复盘时把每类错误的占比写成结论,作为下一次改进的输入

错误体结构(示意)

错误体结构(示意)
{
  "error": {
    "message": "...",
    "type": "invalid_request_error",
    "code": null
  }
}
// 网关按 status 与 type 归类后再进统计管道

分层与归类

错误类型归入说明
参数错误客户端不计入服务故障
鉴权失败客户端与权限配置有关
429保护性单列一类便于观察
5xx 与超时服务端计入可用性
统计分母的口径要固定,例如「有效请求」是否包含 429:口径一改历史对比就失效,所以必须写进运行手册。
网关与引擎的错误分类要能对上:同一个失败在网关记成 502、在引擎里是超时,两侧口径不一致时对账永远对不上。
分类粒度够用就好:太细维护成本高、没人看,太粗又定位不到问题,按实际排障习惯定档。

易错点

  • 把用户参数错误算进服务可用性:错误率虚高、误报警,长期会钝化值班响应
  • 口径中途变更:历史数据失去可比性,趋势图出现无法解释的台阶
  • 把 429 也当故障:限流是保护机制生效的表现,要与服务不可用分开统计
  • 只统计总数不分层:判断不出该修服务还是该改客户端的接入方式
  • 把网关与引擎的错误率直接相加:同一请求在两层各记一次,数字会被重复计算

数据来源与参考

  • OpenAI 官方文档:Error codes(platform.openai.com/docs)
  • RFC 9110:HTTP 语义(状态码定义)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌