github komari-monitor/komari Snapshot-2607281118

pre-release5 hours ago

主要更新内容

  • 数据库迁移重构:将旧的 1.2.7 升级向导替换为循环式迁移检测,支持结构重构(restructure),阻止未升级的旧指标库正常启动,引导管理员通过 Web 执行迁移。
  • 移除低资源模式:废弃 low_resource_mode 配置及自动探测,不会再影响 SQLite 或指标存储行为。
  • 移除安装脚本自动获取密码:不再从日志提取初始密码,改为引导用户访问 Web 页面完成管理员创建。
  • 指标存储架构重写:精确样本仅保存在内存(10 分钟窗口),分钟级热 rollup 直接被持久化;废除原始点表(points),引入规范化的系列/标签/分辨率字典;Compact 不再处理原始点删除,仅负责封存历史分钟桶。
  • 扩展 raw retention 为 10 分钟:默认的精确采样保留窗口从 15 分钟调整为 10 分钟,并固定为内存存储。
  • SQLite 优化:主数据库连接统一通过 sqlitetune 包配置,设置更小的缓存(8 MB)、关闭内存临时存储、启用缓存溢出、调整 WAL checkpoint 和日志大小限制;移除默认的 mmap 支持。
  • 公开 ping 任务添加 weight 字段:返回 PingTask 响应时包含 weight 字段。
  • 自动重启旧指标库:重载旧格式 metrics 数据库后,服务会自行重启以进入结构升级状态。
  • 新增 Web 迁移引导web/migration 用于结构升级和历史监控数据迁移。

Bug修复

  • 修复 metricstore compaction 写饥饿:使用信号量替换通道栅门,允许压缩与写入并发,而非独占写锁。
  • 修复热 rollup 刷新时间窗口精确性:推迟热桶的 flush 时机,确保 upsert 窗口内的采样点都被包含再封存。

其他

  • Docker 部署文档:所有语言的自述文件均添加 --restart=always 参数。
  • 依赖调整golang.org/x/sync 升级为直接依赖,golang.org/x/sys 改为间接。
  • 清理残留配置:迁移脚本自动删除已废弃的 low_resource_mode 配置项。
  • 删除旧代码:移除 compaction_watermarkupsertPointSQLupsertRollupSQL 等不再使用的逻辑。

Commits

Full Changelog: 1.3.0...Snapshot-2607281118

Don't miss a new komari release

NewReleases is sending notifications on new releases.