Skip to content

v2.16.6

Choose a tag to compare

@MisiteQ MisiteQ released this 09 Oct 02:31
· 32 commits to main since this release

v2.16.6 新增「上月汇总」功能

在总览仪表盘顶部新增上月汇总卡片,展示上个月各项监控数据汇总(CPU/内存/磁盘/温度的均值与峰值、网络总流量、功耗 kWh 与电费、负载等),设置中可开关。

核心机制:清理前增量叠加

历史保留天数(retention_days)默认 7 天,不足整月。当 retention < 31 时,metrics 表中上月初的数据已被 cleanup 删除,无法在月初一次性查询整月数据。

解决方案:每次 cleanup 执行 DELETE FROM metrics WHERE ts < cutoff 前,先把即将删除的数据按月汇总后 UPSERT 到独立的 monthly_summary 表(不受 cleanup 影响)。即使 retention=7,每月 cleanup 时都会把即将删除的 7 天数据汇总叠加,月度汇总始终完整不丢失。

实现细节

  1. 新建 monthly_summary 表(与 metrics 同库):主键 (year, month, metric),存 sum/count/max/min/first_val/last_val
  2. 清理前增量叠加(_archive_to_monthly):cleanup 删除前按 metric 分组聚合,通过 INSERT ON CONFLICT DO UPDATE UPSERT —— sum/count 累加(加权平均)、max/min 取极值、first_val 取更早的、last_val 取更晚的
  3. 月初补全(_archive_to_monthly_range):每月 1-3 号检查,把上月仍在 metrics 表中的数据也归档(防止月末数据遗漏)
  4. 速率型指标(cpu/mem/disk/temp/power/load1/fan):avg=sum/count, max/min 直接取
  5. 累计型指标(net_rx_bytes/net_tx_bytes):月度值 = last_val - first_val(计数器差值)
  6. API /api/monthly_summary:返回最近月度汇总 + retention 不足时的提示
  7. 配置项 monthly_summary_enabled:加入 DEFAULT_CONFIG / load_config 白名单 / api_config_save
  8. 前端:仪表盘顶部卡片 + 设置开关 + 5 分钟轮询;retention < 31 且开关开启时显示提示

提示功能

当开关开启且 retention_days < 31 时,在设置页与仪表盘卡片中显示:「历史保留天数 X 不足整月,已自动叠加保存汇总统计」。

SHA256

文件 校验值
fnmonitor-2.16.6-x86.fpk 1a9cadf77b939edde110532136fc33e58b9df08daa6e98d7013ea92fb5aab190
fnmonitor-2.16.6-arm.fpk 37e654718fc5172832e2b72995009c63e8ac2d64be48738f121db9e7cfc5bb66