目标
把当前简单 /health 扩展为可用于 Nginx / 云 LB / Controller 的节点状态能力。
当前 backend/internal/server/routes/common.go 的 /health 只返回 {"status":"ok"},不足以支撑节点联邦。
建议接口
保留:
继续返回轻量 ok,兼容现有部署。
新增:
返回示例:
{
"status": "ok",
"node_id": "sg-1",
"role": "worker",
"version": "0.2.x",
"region": "sg",
"active_streams": 12,
"max_concurrency": 100,
"db": "ok",
"redis": "ok",
"uptime_seconds": 3600,
"started_at": "2026-06-25T00:00:00Z"
}
实现建议
- 新增
NodeStatusService 或放入 service 层,不要在 route 里拼复杂逻辑。
- 不返回任何密钥、token、完整数据库地址、Redis 地址。
- 如果 Redis/DB 不可用,
/health 可仍按现有策略返回,/node/status 应反映 degraded。
- 后续 Ops/UI 可复用此接口。
测试点
/health 兼容旧行为。
/node/status 在关闭 federation 时仍能返回基础状态。
- DB/Redis mock 失败时状态为 degraded,不 panic。
- 返回体不包含敏感字段。
目标
把当前简单
/health扩展为可用于 Nginx / 云 LB / Controller 的节点状态能力。当前
backend/internal/server/routes/common.go的/health只返回{"status":"ok"},不足以支撑节点联邦。建议接口
保留:
继续返回轻量 ok,兼容现有部署。
新增:
返回示例:
{ "status": "ok", "node_id": "sg-1", "role": "worker", "version": "0.2.x", "region": "sg", "active_streams": 12, "max_concurrency": 100, "db": "ok", "redis": "ok", "uptime_seconds": 3600, "started_at": "2026-06-25T00:00:00Z" }实现建议
NodeStatusService或放入service层,不要在 route 里拼复杂逻辑。/health可仍按现有策略返回,/node/status应反映 degraded。测试点
/health兼容旧行为。/node/status在关闭 federation 时仍能返回基础状态。