1
0

feat: 前端指标体系增强 — Dashboard/Metrics API、2×4 统计区、趋势图面积+异常标记、连续状态列

- 新增 GET /api/dashboard 合并原 summary+targets 首屏接口
- 新增 GET /api/targets/:id/metrics 合并原 stats+trend 概览接口
- 后端指标纯函数:可用率、百分位、故障段分析、连续状态、UTC 小时分桶
- ProbeStore 窗口取数方法替代全量历史查询
- SummaryCards 扩展为 4 卡片(新增异常事件数)+ 数据新鲜度展示
- 表格新增「连续」列(Tag 渲染 capped 状态)
- OverviewTab 重构为 2×4 Statistic 多维度布局
- TrendChart 改为延迟范围面积图 + 红色异常标记点
- 删除旧路由(summary/targets/trend)和 computeTrendStats
- 同步 delta specs 到主 specs 并归档变更
This commit is contained in:
2026-05-14 12:32:41 +08:00
parent e983e5d75d
commit 1c5cfafda6
47 changed files with 1768 additions and 1231 deletions

View File

@@ -57,7 +57,7 @@ export function createTargetTableColumns(checkerTypes: string[]): Array<PrimaryT
colKey: "stats.availability",
sorter: availabilitySorter,
sortType: "all",
title: "可用率",
title: "可用率(24h)",
width: 160,
},
{
@@ -66,6 +66,22 @@ export function createTargetTableColumns(checkerTypes: string[]): Array<PrimaryT
title: "最近状态",
width: 220,
},
{
align: "center",
cell: ({ row }: PrimaryTableCellParams<TargetStatus>) => {
const streak = row.currentStreak;
if (!streak) return "-";
return (
<Tag size="small" theme={streak.up ? "success" : "danger"} variant="light">
{streak.up ? "▲" : "▼"} {streak.count}
{streak.capped ? "+" : "次"}
</Tag>
);
},
colKey: "currentStreak",
title: "连续",
width: 100,
},
{
align: "right",
cell: ({ row }: PrimaryTableCellParams<TargetStatus>) => {