Repository navigation
v2.2.9
feat: 仪表盘历史指标趋势新增图表,并让发版说明展示变更摘要
一、历史指标趋势:右侧新增趋势图
原来只有一张按时间排列的采样清单,只能逐行核对数值,看不出走势。
现在拆成左右两栏:左栏保留原始采样清单,右栏新增趋势折线图。
- 新增零依赖 SVG 图表组件 web/src/components/MetricTrendChart.vue。
不引第三方图表库:前端会被打包进 Go 二进制、跑在 armv7 这类小设备上,
为一个趋势图拖进上百 KB 运行时不划算,而这里的需求(多序列、双 Y 轴、
悬停读数)用 SVG 直写完全可控,也没有主题/版本适配隐患。 - 双 Y 轴:CPU / 内存 / 磁盘是百分比,固定走左轴 0–100;
负载 1m 是绝对值(通常 0.x–2),单独走右轴,否则会被压在底部看不出变化。 - 交互:悬停显示竖向准星 + 该时刻全部指标读数;点击图例可隐藏/显示某条曲线
(不允许全部隐藏,全空图表比留一条线更让人困惑)。 - 新增时间范围选择(最近 6 / 12 / 24 小时),图表与清单联动。
- 采样密度处理:24h×30s 有 2880 点,直接进 DOM 没有意义,按上限抽稀渲染,
但保留原始数据下标,保证悬停读的是真实样本而不是抽稀后的近似值。 - 缺采样(null/非有限值)处曲线断开,而不是在两个真实点之间连出一条假直线。
纯计算部分抽到 web/src/chartScale.js,可脱离浏览器直接跑断言。
二、发版说明改为按改动内容生成的摘要
Release 的「更新说明」会被面板「设置 → 版本更新」原样展示给用户,
此前用的是 GitHub 自动生成(只列提交标题和 PR),用户看不到「改了什么、为什么改」。
现改为取本次提交的标题 + 正文作为 Release body。
验证:
- 图表计算断言(niceMax / downsample / axisLabel / buildSegments / hoverIndex)
全部通过;其中 buildSegments 修掉一个真实缺陷——越界值此前依赖调用方
传入的 yOf 做夹紧,已改为在生成坐标这一步就压回画布内。 - 前端 vite build 通过;运行时冒烟:面板可正常提供入口 JS 与图表 chunk(均 200)。
- go build / go vet 通过;go test ./... -p 1 全量通过(19 个包)。
- release.yml 经 YAML 解析校验,更新说明生成脚本本地演练通过。
完整提交:5a387d2