diff --git a/docs/MDTODO/details/sub2api-upstream-reliability/R2.12_Task_Report.md b/docs/MDTODO/details/sub2api-upstream-reliability/R2.12_Task_Report.md new file mode 100644 index 00000000..402d7bae --- /dev/null +++ b/docs/MDTODO/details/sub2api-upstream-reliability/R2.12_Task_Report.md @@ -0,0 +1,52 @@ +# R2.12 最近 2 小时 Sub2API 运维巡检报告 + +## 边界 + +本次只读使用 PK01 Sub2API 状态、原生 Ops 诊断、所有分组错误概要、分组账号评分和 request trace。未修改源码、版本、runtime、YAML、账号、外部哨兵或部署。 + +## 服务状态 + +- PK01 Sub2API `0.1.155` 健康运行约 19 小时,Redis 正常,本地 health 与 Caddy 正常。 +- 所有分组合计 3061 请求、34 个客户错误,客户错误率 1.11%;可归因上游错误率 0.95%。 +- OpenAI 总容量 225,查询时使用 5、队列 0;没有降低上游并发的证据。 +- 原生前端投影提示两个 OpenAI 分组 TTFT 约 13.6-13.8 秒、健康分 61。近 1 小时盈利池 TTFT P95/P99 为 10.0/14.7 秒,自用池近 2 小时为 9.1/13.6 秒,无超过 180 秒的近期证据。 + +## 盈利池 + +近 1 小时 642 请求、10 个客户错误,客户错误率 1.25%,上游错误率 0.47%。10 个客户错误均未选中账号: + +- 7 次请求未配置模型 `gpt-5.6`。 +- 1 次请求未配置模型 `gpt-5.4-nano`。 +- 2 次客户余额不足。 + +账号切号 1 次并成功,真实上游故障未穿透客户。账号质量:`https://sub.yjxm1221.top plus 0.025` 为 100/A,`lyon9801 0.0` 为 99.9/A,`https://ai.whistlelads.com plus 0.03` 为 95.2/A;`https://sub.yjxm1221.top pro 0.06` 短窗 68.4/D,但只有 19 次尝试且 1 次切号已恢复,现有低优先级 50 无需追加调整。 + +当前 5 个账号因上游 `403 Insufficient account balance` 不可调度:`https://api.lwylink.xyz pro 0.1`、`https://api.lwylink.xyz plus 0.05`、`https://sub2.pokexiao.com plus 0.03`、`https://sub2.pokexiao.com pro 0.05`、`https://api.iceiu.com plus 0.011`。`iceiu` 的优先级 2 在余额恢复前不会产生调度收益。 + +## 自用池 + +近 2 小时约 1600 请求,仅 1 个客户错误,为未选中账号的 `Failed to read request body`,不是上游问题。9 次 failover 全部恢复。`lyon9801 0.0` 为 99.2/A,承担 1103 个成功请求;`https://ai.whistlelads.com plus 0.03` 为 93.6/A。`https://sub.yjxm1221.top plus 0.025` 两小时短窗 72.3/C,但 7 次失败均内部恢复,近 1 小时盈利池又为 100/A,不建议按共享短窗直接降优先级。 + +## Grok 分组 + +近 2 小时 24 请求、23 个客户错误,客户错误率 92.86%。唯一账号 `https://sub.yjxm1221.top grok` 6 次尝试仅 1 次成功,5 次 overload 均进入 failover,但没有第二账号可选,因此 5 次全部失败。另有 10 次 routing 503、7 次请求体 400 和 1 次客户端取消。 + +请求 `59d54771-35ac-4f0d-b418-414d11b40d2d` 证明上游 503 后约 2.154 秒触发 failover,排除唯一账号后立即 `no available accounts` 并返回 502。请求 `29367b0f-1f9c-47f0-b8f2-88f6017a262c` 在选号阶段 10ms 内发现无可用账号并返回 503。问题不是切号逻辑过慢,而是单账号分组没有候选冗余。 + +## 调优建议 + +### 立即处理 + +1. 若 Grok 继续对客户开放,增加至少一个经真实 `grok-4.5` 测试通过的第二账号并加入同一 Grok 分组;在只有一个账号时,临时不可调度只能缩短失败时间,不能提高成功率。 +2. 对 5 个余额不足账号做经营选择:计划继续使用的先在对应上游恢复余额并通过原生账号测试;不再续费的退役,避免长期保持错误账号和虚假总容量。优先处理成本最低但当前不可用的 `https://api.iceiu.com plus 0.011`。 +3. 定位 `gpt-5.6` 与 `gpt-5.4-nano` 请求来源。若调用方写错模型,修正调用方;只有实时上游模型能力确认支持等价模型时,才用官方 model mapping,禁止猜别名。 + +### 继续观察 + +- 保持现有 OpenAI priority。`lyon9801` 虽查询时 5/5,但队列为 0、下一优先级正常承接,近期 TTFT 不支持提高 capacity 或降低全局并发。 +- 保持 OpenAI response-header timeout 现状。近期 P99 远低于 180 秒,没有通过 timeout 调优改善错误的证据。 +- 观察 `https://sub.yjxm1221.top pro 0.06` 和 `plus 0.025` 的 8-24 小时样本;短窗失败均已内部恢复,不应重复调优。 + +## CLI 证据边界 + +并行执行两个同类 `runtime` 命令时曾生成相同远端 job 名并互相覆盖,产生空账号列表和空分组结果;已串行重取并排除污染数据。后续同类巡检在该命名问题修复前应避免并行运行同一 mode 的远端 runtime 查询。 diff --git a/docs/MDTODO/sub2api-upstream-reliability.md b/docs/MDTODO/sub2api-upstream-reliability.md index e5fda9b4..8119a47e 100644 --- a/docs/MDTODO/sub2api-upstream-reliability.md +++ b/docs/MDTODO/sub2api-upstream-reliability.md @@ -213,6 +213,9 @@ ### R2.11 [completed] 依据 [UniDesk #2144](https://github.com/pikasTech/unidesk/issues/2144) 将单账号成本标注与优先级调优的最短路径固化到 Sub2API skill:账号级 `runtime errors --group --account --since` 作为评分、可靠性、TTFT、用量和成本首入口,仅在读取当前 runtime 字段时补一次 `runtime get`;全组概要只用于跨账号比较,名称和 priority 分别 dry-run、顺序 confirm、最终单次回读,不修改运行面,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.11_Task_Report.md)。 +### R2.12 [completed] + +只读巡检 PK01 Sub2API 最近 2 小时运维情况:使用原生状态、智能诊断和所有分组客户可见错误概要,再对异常分组下钻账号评分、TTFT、错误归因、重试与切号效果;区分需立即调优、继续观察和非上游问题,给出配置优化建议但不修改源码、版本、runtime、YAML 或外部哨兵,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R2.12_Task_Report.md)。 ## R3 [completed] 增加 Sub2API 客户余额精准批量充值 CLI:支持从原生最近24小时用量提取活跃用户并生成每人增加20美元的补偿计划,也支持显式用户ID或账号 selector;默认 dry-run 输出完整账号、用户ID、当前余额、增额和目标余额,写入必须显式 --confirm 并自动回读对账。本轮只实现并验证 dry-run,禁止实际充值,必须等待用户再次明确授权,完成任务后将详细报告写入[任务报告](./details/sub2api-upstream-reliability/R3_Task_Report.md)。