OpenAI
页面内容为机器翻译。查看英文原文

排查 API 错误和延迟问题

本文介绍如何使用服务健康状况和用量仪表板,在使用 OpenAI API 时排查常见错误和延迟问题。

更新于:13 days ago

重要链接

*服务健康状况仪表板当前仅向 Enterprise API 客户开放。

先从正确的默认设置开始

打开服务健康状况仪表板后,默认会显示:

  • 所有项目

  • 最近 30 天

  • 按小时粒度

此视图仅适合用于初步了解情况。要进行有意义的排查,始终需要先进行筛选。


调查前先筛选

正确筛选是最重要的一步。大多数误判都来自混合查看不同模型、层级或项目的数据。

按模型筛选(一次一个)

始终只筛选单个模型。

原因:

  • 低流量模型上的问题可能会被更高流量掩盖

  • 高流量模型可能会让局部问题看起来像是全局问题

  • 不同模型有不同的性能目标

注意:选择多个模型会将它们聚合显示——并不会在它们之间切换。

按服务层级筛选

如果你使用多个层级(standard、priority、scale),请始终筛选到你要调查的那个层级。

原因:

  • 不同层级具有不同的性能特征

  • priority 和 scale 层级具有明确的 SLA

  • 混合层级会掩盖付费层级的性能表现

这对延迟分析尤其重要。

按项目筛选

默认情况下,服务健康状况会显示所有项目。

进行问题排查时,请筛选到观察到问题的项目。

原因:

  • 单个高流量项目可能主导指标表现

  • 受影响但流量较小的项目可能会被无关流量掩盖

只有在你认为问题确实影响整个组织时,才保留选择“所有项目”。


排查错误

使用 HTTP Requests 视图

要调查错误:

  1. 按模型和层级筛选

  2. 要从 Uptime 切换到 HTTP Requests,请点击 HTTP Requests 选项卡

此视图会按 HTTP 状态码显示请求总数和错误数。请缩放到分钟级分辨率,以识别更细粒度的峰值或变化。

解读错误率,而不是错误数

任何生产系统中都预期会出现一些错误。请关注错误百分比,而不是原始总数。

总量越大,即使错误率极低,潜在错误数量也会越大。

当服务健康状况中缺少错误数据时

如果你在客户端看到错误,但服务健康状况中没有对应数据:

  • 请求很可能没有到达 OpenAI

  • 问题通常出现在上游(超时、代理、网络)

这种情况在客户端超时设置过于激进时很常见。


排查延迟问题

延迟分析在 priorityscale 层级上最有意义,因为这些层级具有明确的 SLA。standard 层级的延迟波动可能更大,且不提供延迟保证。

关键指标

要查看这些指标中的每一个,请点击相应的选项卡:

Token Velocity

  • 每秒生成的 Token 数。

  • 独立于提示大小。

Request Time

  • 请求总时长。

  • 受输出大小和推理影响很大。

Time to First Token (TTFT)

  • 生成第一个 Token 所需时间。

  • 受未缓存输入提示大小和推理影响很大。

请始终查看 P50 / P75 / P95 百分位。平均值可能会掩盖对真实用户的影响。


6. 将延迟与 Token 用量关联起来

服务健康状况显示行为何时发生了变化。用量数据有助于解释为什么

在用量仪表板中,请执行以下操作,以确保你查看的是与服务健康状况仪表板视图相关的数据:

  • 筛选到相同的项目、模型

  • 如果适用,按服务层级进行分组

  • 重点关注输出 Token,因为它们对延迟影响最大

如需更深入的分析,请导出活动数据,并检查每次请求的 Token 数随时间的变化。


7. 与支持团队分享哪些信息(如有需要)

如果你确实联系了支持团队,请附上:

  • 受影响的组织 ID (这很重要)

  • 受影响的端点(Chat Completions、Responses 等)(这很重要)

  • 受影响的模型 (这很重要)

  • 这是发生在 scale 还是 priority 层级?(这很重要)

  • 出现延迟或错误的时间范围及其时区 (这很重要)

  • 相关的 x-request-id 或 X-Client-Request-Id(通常很重要;如有可能请附上)

    • 所提供请求的时间戳及其时区(或至少提供日期)

    • 延迟——如果你分享的是慢请求示例,请提供你这边测得的耗时。最好也附上请求发送和收到响应时的时间戳。

    • 错误——请分享失败/报错请求的大致百分比、响应代码、错误消息,以及收到错误响应所花费的时间

  • 与请求相关的项目 id

  • 这是否影响数据驻留请求?如果是,影响的是哪些请求?

  • 你观察到的趋势描述

    • 错误:失败/报错请求的大致百分比

    • 延迟:受影响的是哪些百分位(p50 / p90 / p95 / p99),以及相较于客户基线高出多少

    • 两者都有:错误或延迟数据的截图或表格(你是如何判断错误率或延迟高于预期的?)


常见排查场景

出现超时,但服务健康状况看起来正常

可能原因:请求在到达 OpenAI 之前就已超时。

检查:

  • 客户端或代理超时设置

  • 本地网络或负载均衡器变更

  • 服务健康状况仪表板中是否存在 499 错误(这些错误在你自己的系统中可能显示为 5xx 错误)。


未部署新版本但延迟上升

可能原因:输出 Token 大小或推理用量增加,和\/或流量在不同服务层级之间发生了转移

检查:

  • 用量仪表板中每次请求的平均输出 Token 数(需要下载数据,并用输出 Token 除以总请求数)。

  • 服务健康状况仪表板中的 Request Time 和 TTFT 百分位。


Priority 或 Scale 层级看起来较慢

可能原因:指标混合了不同层级的数据(即 standard 层级流量掩盖了付费层级的性能)

检查:

  • 筛选器是否已限制为单个层级和单个模型

  • 不同层级之间的 Token Velocity 对比


5XX 错误激增

可能原因:影响了少量流量的瞬时故障。

检查:

  • 错误率百分比

  • 流量是否在同一时间发生变化


问题只影响一个项目

可能原因:项目特定的配置或用量模式。

检查:

  • 项目级筛选

  • 与未受影响项目进行比较


最终要点

  • 在解读指标之前,先按模型、层级以及相关项目 进行筛选

  • 做延迟分析时使用百分位,不要使用平均值

  • 较低的错误率是正常现象

  • 数据缺失通常表明存在上游问题

  • 用量数据可以帮助解释延迟为什么发生变化;服务健康状况则有助于显示何时发生变化

这篇文章对你有帮助吗?