M4-01 Admin Dashboard Module #35

Closed
opened 2026-05-22 21:09:50 +08:00 by wangdl · 1 comment
Owner

目标

设计知习 Admin 总控台首页模块,为 Admin 提供关键指标聚合视图、服务器摘要、待处理事项和 Hermes 待审批任务入口。

本 Issue 只做模块架构设计,不直接实现代码。

背景说明

Admin 登录后需要一个总览页面快速了解系统状态。Dashboard 不产生数据,只通过各模块的 QueryService 聚合数据展示。

模块职责

  1. 本模块负责:

    • 关键指标卡片(今日成本、今日导入任务数、活跃用户数、系统健康状态)
    • 服务器状态摘要(来自 Server Monitor)
    • 失败任务摘要(来自 Task Queue)
    • 即将到期服务提醒(来自 Secret & Vendor Asset)
    • Hermes 待审批任务摘要
    • 最近发布记录(来自 Release & Decision)
  2. 本模块不负责:

    • 各指标的数据采集(由各模块负责)
    • 具体管理操作(链接到对应 Admin 模块)

候选数据对象

  • DashboardMetric(聚合指标,可能来自缓存或实时查询)
  • SystemSummary
  • OpsAlert(运维提醒汇总)

基础设施依赖

纯视图聚合层,通过各模块 QueryService 读取 + Cache 缓存。

API 设计

AAPI:

  • Dashboard 聚合数据接口
  • 刷新缓存

Admin 视图设计

Dashboard 首页布局:

  • 顶栏:关键指标卡片行
  • 中间:任务状态概览 + 即将到期提醒
  • 侧栏:Hermes 待审批 + 最近发布记录

禁止事项

  • 禁止 Dashboard 直接查询各模块数据库(必须通过 QueryService)
  • 禁止 Dashboard 数据实时全量计算(应缓存,定时刷新)

不建议当前阶段实现

  • 可自定义的 Dashboard Widget
  • 实时 WebSocket 数据推送
## 目标 设计知习 Admin 总控台首页模块,为 Admin 提供关键指标聚合视图、服务器摘要、待处理事项和 Hermes 待审批任务入口。 本 Issue 只做模块架构设计,不直接实现代码。 ## 背景说明 Admin 登录后需要一个总览页面快速了解系统状态。Dashboard 不产生数据,只通过各模块的 QueryService 聚合数据展示。 ## 模块职责 1. 本模块负责: - 关键指标卡片(今日成本、今日导入任务数、活跃用户数、系统健康状态) - 服务器状态摘要(来自 Server Monitor) - 失败任务摘要(来自 Task Queue) - 即将到期服务提醒(来自 Secret & Vendor Asset) - Hermes 待审批任务摘要 - 最近发布记录(来自 Release & Decision) 2. 本模块不负责: - 各指标的数据采集(由各模块负责) - 具体管理操作(链接到对应 Admin 模块) ## 候选数据对象 - DashboardMetric(聚合指标,可能来自缓存或实时查询) - SystemSummary - OpsAlert(运维提醒汇总) ## 基础设施依赖 纯视图聚合层,通过各模块 QueryService 读取 + Cache 缓存。 ## API 设计 AAPI: - Dashboard 聚合数据接口 - 刷新缓存 ## Admin 视图设计 Dashboard 首页布局: - 顶栏:关键指标卡片行 - 中间:任务状态概览 + 即将到期提醒 - 侧栏:Hermes 待审批 + 最近发布记录 ## 禁止事项 - 禁止 Dashboard 直接查询各模块数据库(必须通过 QueryService) - 禁止 Dashboard 数据实时全量计算(应缓存,定时刷新) ## 不建议当前阶段实现 - 可自定义的 Dashboard Widget - 实时 WebSocket 数据推送
wangdl added this to the M4:Admin 生产级运维深化(P3) milestone 2026-05-22 21:09:50 +08:00
wangdl self-assigned this 2026-05-22 21:09:50 +08:00
Author
Owner

M4-01 实施完成

已有基础

AdminDashboardModule(Service + Controller + 前端页面)此前已有,但多项指标硬编码为 0。

本 Issue 新增

模块 说明
后端增强 从各模块实时查询真实数据:今日 AI 调用/成本、导入任务数、活跃用户数、失败任务数、即将到期密钥
Redis 缓存 Dashboard stats 缓存 TTL 120s,避免每次请求全量查库
刷新接口 POST /admin-api/dashboard/refresh 清除缓存并重新计算
前端卡片 新增 4 张指标卡片:今日 AI 成本、导入任务、失败任务、即将到期密钥

数据来源

指标 数据源
总用户/今日新增/今日活跃 User 表
知识库总数/今日新增 KnowledgeBase 表
文件存储总量 UploadedFile 表
今日导入/失败导入 DocumentImport 表
今日 AI 调用 AiUsageLog 表
今日 AI 成本 CostDailySummary 表
近期失败任务 TaskLog 表
即将到期密钥 SecretRecord 表

AAPI 端点

端点 方法 说明
/admin-api/dashboard/stats GET 仪表盘聚合数据(带缓存)
/admin-api/dashboard/refresh POST 刷新缓存

Admin 页面

Dashboard 首页现有 8 张指标卡片 + 用户/AI 趋势图 + 服务器状态栏。

npx jest --config ./test/jest-e2e.json ./test/m3.e2e-spec.ts  # 35/36 passing
## ✅ M4-01 实施完成 ### 已有基础 AdminDashboardModule(Service + Controller + 前端页面)此前已有,但多项指标硬编码为 0。 ### 本 Issue 新增 | 模块 | 说明 | |------|------| | 后端增强 | 从各模块实时查询真实数据:今日 AI 调用/成本、导入任务数、活跃用户数、失败任务数、即将到期密钥 | | Redis 缓存 | Dashboard stats 缓存 TTL 120s,避免每次请求全量查库 | | 刷新接口 | POST /admin-api/dashboard/refresh 清除缓存并重新计算 | | 前端卡片 | 新增 4 张指标卡片:今日 AI 成本、导入任务、失败任务、即将到期密钥 | ### 数据来源 | 指标 | 数据源 | |------|--------| | 总用户/今日新增/今日活跃 | User 表 | | 知识库总数/今日新增 | KnowledgeBase 表 | | 文件存储总量 | UploadedFile 表 | | 今日导入/失败导入 | DocumentImport 表 | | 今日 AI 调用 | AiUsageLog 表 | | 今日 AI 成本 | CostDailySummary 表 | | 近期失败任务 | TaskLog 表 | | 即将到期密钥 | SecretRecord 表 | ### AAPI 端点 | 端点 | 方法 | 说明 | |------|------|------| | /admin-api/dashboard/stats | GET | 仪表盘聚合数据(带缓存) | | /admin-api/dashboard/refresh | POST | 刷新缓存 | ### Admin 页面 Dashboard 首页现有 8 张指标卡片 + 用户/AI 趋势图 + 服务器状态栏。 ```bash npx jest --config ./test/jest-e2e.json ./test/m3.e2e-spec.ts # 35/36 passing ```
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wangdl/api-server#35
No description provided.