请求日志
阅读日志列表,开启请求捕获,在捕获查看器中检查报文。
日志列表
打开侧边栏中的日志。Monoize 为每个通过 API 密钥认证的转发请求记录一行。每行显示:
- 逻辑模型和 API 密钥名称;管理员还可以查看提供服务的 Provider 和 Channel;
- Token 数量:输入、输出、缓存读取、缓存创建和推理 Token;
- 以美元计的费用;
- 状态:
pending、success、error或client_gone; - 时间指标:总耗时、首字节时间,以及流式请求的每秒 Token 数。
逐事件转发的流式请求收到首个完整上游 SSE 事件时,实时 pending 行立即显示 TTFB。
开始、用量或错误事件都可能先于正文到达并设置该值。心跳注释不会设置该值。
TTFB 表示首个上游事件的耗时,不代表首个可见文字的耗时。
此次更新只使用内存。请求结束后才保存最终用量和计费结果。
client_gone 表示客户端在响应完成前断开连接,但上游请求成功完成。
Monoize 会继续处理上游请求,并按记录的用量正常计费。
客户端收到协议完成帧后停止读取时,成功请求仍记为 success,即使 HTTP 连接尚未结束或计费尚未结算。
上游 API 错误和计费结算错误仍记为 error。
服务端任务未完成最终记录时,状态记为 error,错误码为 request_finalization_aborted。
此状态不能证明客户端已断开,也不能证明上游请求成功。
服务端诊断中的 disconnect_elapsed_ms 表示从创建转发观察器到首次观察到下游断开的时间。
请将它与请求完成时的 duration_ms 对照。两者都不能直接说明断开的原因。
列表默认开启实时更新。关闭实时更新可停止事件流和回退轮询。使用刷新可手动更新列表。

实际上游模型
使用 admin 或 super_admin 账户时,不同的上游响应模型会显示在模型徽标后方,与徽标位于同一行。
将指针移到模型徽标或 Channel 上,查看实际模型。
该值取自响应变换前的上游响应。
Monoize 将它与请求变换后发送给上游的模型名进行比较。
如果名称相同,或响应未声明模型,则不显示该值。
其他角色不会接收或看到该值。
逻辑模型和计费选择保持不变。
失败的尝试
流式解码或处理失败时,请求日志会保留失败前收到的上游用量。这些用量可能不完整。 Monoize 不对这些失败请求扣费,但上游供应商仍可能收费。因此,本地费用不等同于上游账单。
当一个请求经过多次上游尝试时,该行会按顺序列出每一跳失败记录。每一跳显示 Provider、Channel、上游状态码和错误文本。通过这个列表可以看到哪个 Channel 失败了,以及请求为什么继续前进。
请求捕获
捕获功能把每次上游尝试的完整报文保存到磁盘。捕获默认关闭。两个开关控制它:
- 系统开关。
super_admin在设置中启用请求捕获。系统开关关闭时,任何密钥都不会写入捕获文件。 - 密钥级模式。 每个 API 密钥设置
request_capture_mode:off:从不捕获。capture-all:捕获每个到达上游的请求。capture-only-abnormal:捕获失败、缺少用量、用量为零或发生多次上游尝试的请求。
捕获文件有保留期。默认为 1 天。在设置中修改 monoize_request_capture_retention_days 可以调整。
捕获查看器
有捕获记录的行会显示捕获标记。点击标记打开查看器。查看器为每次尝试显示:
- 原始的下游请求体;
- 经过所有变换后的请求;
- 编码后发往上游的完整请求;
- 上游的原始响应或流式帧;
- 实际执行的变换链,包括范围和顺序。
user 角色只能查看自己的捕获,且只能看到 API 密钥范围的变换条目。管理员可以查看 user 角色账户的捕获。
故障排查
| 现象 | 原因 | 处理 |
|---|---|---|
| 新行没有捕获标记 | 捕获持久化晚于实时行到达 | 等待列表自动刷新,或刷新一次页面 |
capture_not_found | 捕获已过期,或你的角色无权查看 | 提高保留天数,或联系捕获所有者 |
| 某个密钥的行缺失 | 该密钥属于其他用户 | 以密钥所有者或管理员身份登录 |