1
0

feat: 新增两个 OpenSpec 变更提案 — CMD Checker 增强与前端指标增强

This commit is contained in:
2026-05-14 01:39:26 +08:00
parent 6e485cc991
commit 0fa2c0c811
18 changed files with 952 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
## Why
当前前端统计指标存在三个层面的问题1计算逻辑缺陷——可用率无时间窗口导致历史数据稀释近期变化、`computeTrendStats` 从百分比反推整数有精度损失、`lastCheckTime` 返回但未展示2指标维度单一——Summary 只有计数、Drawer 统计区 4 个指标本质是同一维度的重复表达、表格缺少连续状态等关键运维信息3缺少性能和可靠性指标——无 P95 延迟、无 MTTR、无故障分析。
## What Changes
- **计算逻辑修复**:可用率查询增加时间窗口参数(默认 24hTrend API 直接返回 `upChecks` 消除前端反推精度损失Summary 展示 `lastCheckTime` 相对时间
- **Summary 增强**:新增第 4 张卡片「24h 异常事件数」(状态翻转计数)
- **表格增强**新增「连续状态」列Tag 样式展示连续正常/异常次数
- **Drawer 统计区重构**:从冗余的 4 指标改为多维度布局(可用率 / 平均延迟 / P95 延迟 / 检查总数支持时间窗口切换24h/7d/30d联动
- **Drawer 可靠性区块**:新增 MTTR / 最长故障 / 故障次数 / 连续正常 4 个指标,与统计区合并为 2×4 布局
- **趋势图增强**增加延迟范围面积图min/max去掉可用率线改为异常时刻红色标记点
- **新增 Stats API**`GET /api/targets/:id/stats` 端点,返回 P95应用层排序计算、MTTR、故障分析等深度统计
## Capabilities
### New Capabilities
- `target-stats-api`: 单目标深度统计 API 端点,提供 P95/P99 延迟、MTTR、故障分析等非时序聚合指标
### Modified Capabilities
- `probe-api`: Summary API 增加 `incidents24h` 字段Targets API 可用率改为固定 24h 窗口Trend API 增加 `upChecks`/`minDurationMs`/`maxDurationMs` 字段
- `probe-data-store`: `getAllTargetStats`/`getTargetStats` 增加时间窗口参数;`getTrend` 增加 min/max 聚合;新增异常事件计数和检查序列查询方法
- `probe-dashboard`: Summary Cards 从 3 张扩展为 4 张,增加 `lastCheckTime` 展示
- `target-table`: 新增「连续状态」列Tag 样式),可用率列标题改为"可用率(24h)"
- `target-detail-drawer`: 概览面板统计区重构为 2×4 多维度布局,趋势图改为延迟范围面积图+异常标记点,删除 computeTrendStatsStatusDonut 数据来源改为 statsData
## Impact
- **后端**`src/server/checker/store.ts` 增加带时间窗口的查询方法和新统计方法;新增 `src/server/routes/stats.ts` 路由
- **共享类型**`src/shared/api.ts` 扩展 `SummaryResponse``TargetStatus``TrendPoint`,新增 `TargetStatsResponse` 类型
- **前端组件**`SummaryCards``OverviewTab``TrendChart``target-table-columns` 均需修改;新增连续状态 Tag 组件
- **前端工具**`utils/stats.ts``computeTrendStats` 删除(不再有调用方)
- **API 端点**:新增 `/api/targets/:id/stats`;修改 `/api/summary``/api/targets``/api/targets/:id/trend` 的响应结构