1. 页面概览

运维状态页(路由 /ops,OpsHealthPage.vue)是平台级健康观测页:页面加载后立即检测一次,之后每 10 秒轮询五大产品(AIP/Foundry/Apollo/Gotham/Swift)的 /health 探针,以「服务健康卡」实时展示各服务存活状态;同时提供「授权信息」(AIP /license/info,仅首次加载 + 手动刷新)、「产品信息」与「运维参考信息」三张只读卡片。

一句话总结:五服务健康轮询 + 授权信息 + 运维参考的纯前端观测页,后端零改动。

2. 访问入口

3. 界面布局

┌──────────────────────────────────────────────┐
│ ① 页头:运维健康状态 + [立即检测/检测中...]   │
│ ② 操作结果提示条(alert,可关闭)             │
│ ③ 服务健康卡网格(2 列,5 张卡)             │
│   AIP/Foundry/Apollo/Gotham/Swift             │
│ ④ 授权信息卡:[刷新]                         │
│ ⑤ 产品信息卡(只读静态)                     │
│ ⑥ 运维参考信息卡(进程表 + 日志 + 降级说明) │
└──────────────────────────────────────────────┘

各板块职责:

4. 交互元素

控件位置含义与作用
「立即检测」页头手动触发全量健康检查(checkAll);检测中显示「检测中...」并禁用
服务健康卡 ×5服务网格只读展示;每 10s 自动轮询一次,单卡失败不影响其他卡
依赖级明细列表AIP 卡内(仅 AIP 有 checks 时)只读:每项显示中文名、状态(正常/异常)、latency_ms(有则显示如「12ms」)、message(有则红色);未知检查项名用原名兜底
「刷新」授权信息卡重新请求 /license/info;加载中显示「刷新中...」并禁用
「关闭」结果提示条清除当前 alert 消息

5. 后端关联

5.1 API 端点

方法路径用途
GET/aip-api/healthAIP(18080)健康探针(富响应{status, checks, timestamp}checks 含 database/vector/llm_gateway/disk_space 依赖级明细)
GET/api/healthFoundry(18081)健康探针
GET/apollo-api/healthApollo(18082)健康探针
GET/gotham-api/healthGotham(18083)健康探针
GET/swift-api/healthSwift(18084)健康探针
GET/aip-api/v1/license/infoAIP 授权信息(aipClient)

5.2 关键机制

6. 权限与安全

7. 常见问题与排错

  1. 某服务卡长期「异常」:该产品后端未启动。启动对应进程(aip/foundry/apollo/gotham/swift)后点「立即检测」;确认端口未被占用。
  2. 授权信息显示「未授权」:未配置 AUTH_KEY 或授权过期。前往「设置」页保存 AUTH_KEY 并「刷新有效期」;仍失败请联系厂商(官网 zyinfo.pro)。
  3. 授权信息提示「AIP 未启动或未登录」:AIP 后端(18080)未启动或 token 过期。启动 AIP、重新登录后再「刷新」。
  4. 卡片一直「检测中」:单请求 3 秒超时后仍失败,多为网络/代理不可达。检查 DevTools Network 中 /xxx-api/health 是否 502/超时。

8. 已知缺陷与边界

说明
依赖级探测仅 AIPAIP 提供依赖级明细(database/vector/llm_gateway/disk_space,health/health.go:35-39),其余四产品健康端点只回二元存活 {status:"ok", service}(后端契约差异,界面已常驻如实标注)
授权不轮询授权信息仅首次 + 手动刷新,非实时
gateway 无探针gateway 为 Web 网关(非平台 Go 服务),平台确无对应探针端点(后端缺口,非前端遗漏);「运维参考信息」表已常驻说明「本页能加载即说明该网关已在工作」
degraded 独立琥珀态degraded(部分依赖挂)显示为琥珀色「部分依赖异常」并列出挂掉的依赖项,不再一律判「异常」
进程操作需命令行平台不提供进程启停/日志 API,见「运维参考信息」说明