4.5 KiB
4.5 KiB
R2.1 任务报告
目标
增强 UniDesk Sub2API CLI,优先使用 Sub2API 原生 admin/ops 运维能力诊断全池错误、账号状态、并发和单请求链路,运行日志只补原生索引未提供的策略事件。
官方能力依据
对照 Wei-Shaw/sub2api 官方仓库提交 5d1c577cb2c735ca1f1d57533dff1302f6998d91,确认可复用接口:
/api/v1/admin/ops/dashboard/overview:请求总数、客户可见错误、错误率、上游错误率、健康分。/api/v1/admin/ops/upstream-errors:账号级上游错误、状态码、request id 和详情。/api/v1/admin/ops/account-availability:账号可用、限流、过载和错误状态。/api/v1/admin/ops/concurrency:平台、组和账号并发占用、容量与排队。/api/v1/admin/ops/requests:成功与错误请求的统一 request-id 视图。/api/v1/admin/ops/system-logs及/health:索引日志和 sink 健康状态。
CLI 改进
runtime errors增加nativeOps,使用 overview 的完整请求分母计算客户可见错误率,避免把错误记录数当错误率。- 增加原生账号可用性、组并发、排队和 system-log sink 丢弃/写入失败状态。
- Ops 上游错误改为所有选中账号主动查询,不再要求容器日志先出现对应事件。
policyEffectiveness关联临时不可调度、failover、选号失败、forward_failed和最终结果;仅按 request id 关联并披露缺失覆盖率。- 原生 system-log 索引没有策略事件而 overview 存在上游错误时,自动回退 target runtime 日志补事件,并披露 fallback 原因、数量和原生索引计数。
- 全池默认只输出主因排名,账号详情通过
--account下钻;全池和单账号默认输出均保持在 CLI 预算内,--full保留完整分布。 trace改为/ops/requests与/ops/system-logs优先,target runtime 日志只补邻近上下文。- 修复 PK01 trace 固定读取 k3s Deployment、Docker stderr 业务日志遗漏和原生事件倒序问题。
forward_failed与 HTTP 200 并存且没有 failover 时,trace 标记为degraded,不再误报普通成功。- 修正
No available channel for model根因分类和所有 Ops 错误被描述为 HTTP 500 的误导文案。
现场验证
- 10 分钟原生 overview 样本曾观测 165 个请求、2 个客户可见错误,错误率 1.21%,上游错误率 3.03%;后续窗口为 189 个请求、1 个客户可见错误,错误率 0.53%,上游错误率 2.65%。这些是滚动窗口快照,不代表长期趋势。
- 原生 concurrency 显示组容量 218,现场占用约 9 至 10,无排队;全池错误不能归因于 Sub2API 组并发耗尽。
- 原生 availability 显示账号 29、30 因
403 Insufficient account balance处于 error;账号 27 在短时冷却窗口可能暂不可用。 - 策略事件样本显示临时不可调度和 failover 均实际发生;部分切号成功,仍存在切号后失败、结果缺失和
forward_failed + HTTP 200。 - request
03a94444-ff26-4038-b1b9-67e249ce7f59:账号 33 返回 524 后切到账号 31,账号 31 返回 502,随后account-select-failed/context canceled,最终客户状态 502。 - request
55d32c6a-09ae-46ac-9a34-3f63934e7f62:账号 31 出现并发错误但 HTTP 200,没有 failover,trace 正确标记degraded。 - 账号 31 的 10 分钟 Ops 记录同时包含 429 rate-limit 和明确 concurrency 文案;当前并发快照不能替代错误发生时并发,后续只能通过受控对比判断是否需要调整账号并发。
- 原生 system-log sink 健康,无 dropped/write failed;但策略事件查询为零,当前需要 runtime 事件 fallback。
验证命令
bun --check scripts/src/platform-infra-sub2api-codex/runtime.tsbun --check scripts/src/platform-infra-sub2api-codex/remote-python-sync.tsbun --check scripts/src/platform-infra-sub2api-codex/render.tsbun scripts/cli.ts platform-infra sub2api codex-pool runtime errors --target PK01 --since 10mbun scripts/cli.ts platform-infra sub2api codex-pool runtime errors --target PK01 --since 10m --account 31bun scripts/cli.ts platform-infra sub2api codex-pool trace --target PK01 --request-id 03a94444-ff26-4038-b1b9-67e249ce7f59git diff --check
后续
- R2.2 持续观察新窗口,区分客户可见错误率、上游错误率、成功 failover 和流式 degraded。
- R2.3 调查原生 system-log 索引为何未保留策略事件,并优先推动 Sub2API 原生能力覆盖,减少 runtime 日志 fallback。