fix(providers): correct endpoint health aggregation and display

This commit is contained in:
elky
2026-09-06 18:24:27 +08:00
parent dba5e6e9e9
commit d1b5eb08ee
9 changed files with 425 additions and 38 deletions
+28
View File
@@ -0,0 +1,28 @@
# 提供商管理的端点健康度
以下管理接口使用相同的健康度汇总规则:
- `GET /api/admin/providers/summary`
- `GET /api/admin/providers/{provider_id}/summary`
## 统计规则
- 仅统计启用端点下、支持该端点 API 格式的启用密钥。
- 每个密钥读取其 `health_by_format[api_format].health_score`,不跨格式借用分数。
- 只对已有的有效健康分数求算术平均;没有健康数据的密钥不按满分计入。
- 分数范围为 `0``1`,沿用调度器的分数读取与范围约束。
- 停用端点、没有启用密钥或没有有效健康分数时,端点的 `health_score` 返回 `null`
- `avg_health_score` 仅平均有有效健康数据的启用端点;没有此类端点时返回 `null`
- `unhealthy_endpoints` 仅统计上述端点中健康度低于 `0.5` 的数量,不把未知状态算作故障。
`total_keys``active_keys` 仍反映密钥配置数量,不因缺少健康数据而减少。
## 页面展示
桌面表格和手机卡片使用相同规则:
- 有健康数据时显示百分比;有效的零分显示 `0%`
- 无健康数据时显示灰色占位条和 `-`,提示“暂无健康数据”,不显示 `100%``0%`
- 端点停用、未配置密钥或没有启用密钥时显示灰色占位条和对应状态提示。
此分数是密钥当前健康状态的聚合,不是某个时间窗口内的请求成功率,也不是主动探测结果。