# OpenFlare 开发计划 ## 1. 当前状态 当前结论: * 第一版至第五版主线能力均已完成 * 已完成阶段的过程性任务不再继续展开维护 * 当前主线切换到第六版(0.6.x) 第六版主目标: * 为节点增加请求数据采集、资源采集与 heartbeat 上报能力 * 在 Server 侧完成访问分析、趋势计算与聚合查询 * 改造管理端总览页与节点详情页,提升信息密度、数据层次和监控可读性 * 建立可持续扩展的观测数据分层,避免在旧节点模型和旧首页接口上继续补丁式堆功能 第六版当前进展(按当前代码基线): * 已完成 heartbeat 扩展协议与观测数据分层落地,节点已支持上报 `profile`、`snapshot`、`traffic_report`、`health_events` * 已完成 Server 侧观测模型、入库链路与查询接口,节点观测已拆分为系统画像、资源快照、窗口流量聚合、健康事件 * 已完成 Agent 侧真实请求窗口聚合采集,当前通过受管 OpenResty Lua 观测脚本与本地指标端口输出窗口聚合结果,不再依赖访问日志增量读取 * 已完成节点详情观测接口与页面第一轮改造,当前已支持系统画像、实时资源、运行状态、24 小时趋势、状态码分布、Top Domain 与健康事件时间线 * 已完成首页总览专用聚合接口与首页第一轮改造,当前已支持系统运行总览、风险态势、峰值摘要、24 小时趋势、节点健康列表与活动异常 * 已完成首页风险态势到节点页的轻量筛选联动,支持从总览跳转到节点页查看离线节点、OpenResty 异常节点与配置落后节点 * 已完成首页总览首屏重构第一版,当前已具备全球态势板、系统健康摘要、请求/容量/网络/磁盘趋势、来源分布、状态码分布与 Top Domain 看板 * 当前世界板已先接入全球来源信号与节点健康覆盖,节点真实地理点位仍待后续补充地域元数据后进一步完善 * 已完成节点详情页第二轮重构,当前首屏已支持系统画像、实时资源、网络流量三块核心卡,以及 24 小时 CPU/请求/网络/磁盘 IO 趋势、请求结构分布、健康事件时间线与运维模块下移 * 首页大盘的进一步态势化增强与告警规则联动仍处于后续阶段 --- ## 2. 已完成范围压缩归档 已完成能力统一归档为以下几类: * 反代规则、配置版本、预览、发布、激活、回滚 * Agent 注册、心跳、同步、应用、失败回滚 * HTTPS/TLS、证书托管、域名管理 * 节点管理、令牌体系、部署与更新链路 * OpenResty 性能优化、缓存配置与主配置托管 * 新版管理端前端、主题与统一交互框架 归档原则: * 第一版至第五版的实施细节以代码与 Git 历史为准 * 本文件只维护当前有效主线,不再保留已完成阶段的过程性拆分 * `docs/improve_plan.md` 继续作为并行整理清单存在,但不覆盖第六版主线优先级 --- ## 3. 第六版范围 ### 3.1 第六版要做 1. 节点数据采集与上报 * Agent 在每次 heartbeat 时上报最近周期内的请求数据 * Agent 同步上报节点系统画像、CPU/内存/存储快照、磁盘 IO、OpenResty 入站/出站流量 * 新增在线时长、操作系统、内核、架构、CPU 型号、逻辑核数、总内存、磁盘布局等节点维度信息 * 采集节点健康事件,覆盖离线、OpenResty 不健康、配置未追平、资源逼近阈值和错误率异常 2. 服务端访问分析 * 基于请求数据计算当前节点 QPS、访问次数、访问人数 * 统计访问来源分布、访问趋势、状态码分布等核心指标 * 支持总览维度与节点维度两套查询视图 * 生成系统整体健康摘要,回答“是否健康、是否有风险、问题集中在哪些节点” 3. 总览页改造 * 首屏新增世界地图看板,用于展示全部节点分布与在线状态 * 调整总览信息结构,不再以单一“四卡摘要”作为主布局 * 增加趋势、分布、Top 榜单、容量风险和异常信号展示 * 引入类似 WAF/安全运营面板的信息组织方式,但聚焦 OpenFlare 当前系统健康与流量状态 4. 节点详情页改造 * 第一行重构为三块核心卡片:系统信息、实时资源占用、网络流量监控 * 第二行展示最近 24 小时历史趋势,至少覆盖 CPU、网络、磁盘 IO * 第三行接续当前目标版本与应用记录等运维信息 * 清理低价值、重复、信息密度低的展示模块 5. 架构可扩展性治理 * 将节点观测拆分为静态画像、动态快照、窗口聚合、健康事件四类数据 * 为总览页和节点详情页建立专用聚合接口,不继续依赖旧列表接口临时拼装 * 控制原始数据保留窗口和聚合粒度,避免后期查询、存储和维护成本失控 ### 3.2 第六版不做 * 不引入 Prometheus、ClickHouse、Kafka、ElasticSearch 等新基础设施 * 不建设通用日志检索平台、APM 平台、调用链追踪平台 * 不扩展为 GeoDNS、全球流量调度、节点智能选路系统 * 不做任意自定义报表、任意维度 OLAP 查询或外部 BI 接入 --- ## 4. 第六版实施顺序 建议按以下顺序推进: 1. 定义数据模型与 heartbeat 扩展协议 * 明确系统画像结构、请求数据批次结构、资源快照结构、聚合结果结构与健康事件结构 * 补齐保留策略、体积限制和失败回退规则 2. 完成 Agent 采集链路 * 采集请求窗口聚合 * 采集系统画像与运行时性能指标 * 采集 OpenResty 入站/出站流量 * 归并节点健康事件并挂入 heartbeat 上报 3. 完成 Server 入库与分析链路 * 接收并校验 heartbeat 扩展数据 * 入库存储系统画像、原始批次、资源快照和健康事件 * 生成总览页与节点详情页所需聚合统计与系统健康摘要 4. 完成总览页改造 * 世界地图看板 * 系统健康摘要区 * 核心访问指标区 * 访问趋势与来源分布区 * 节点状态、配置追平与异常摘要区 5. 完成节点详情页改造 * 系统信息卡片 * 实时仪表盘与网络流量卡片 * 24 小时趋势图 * 下移并重组当前目标版本、健康事件与应用记录 6. 补齐回归验证 * Agent 心跳主链路 * 聚合统计正确性 * 健康事件触发/恢复正确性 * 总览页与节点详情页的亮暗主题和空态/错误态 --- ## 5. 第六版分阶段计划 ### 5.1 阶段一:采集协议与存储落地 目标: * 打通“节点采集 -> heartbeat 上报 -> Server 接收 -> 入库”主链路 当前状态: * 已完成 任务: * 扩展 Agent heartbeat payload * 新增系统画像、请求数据批次、资源快照和健康事件模型 * 为请求明细、性能快照和聚合统计建立查询入口 * 控制单次 heartbeat 体积,避免影响现有同步稳定性 验收标准: * 节点可随 heartbeat 成功上报系统画像、请求数据与性能快照 * heartbeat 扩展失败不影响配置同步主链路 * Server 能按节点和时间窗口查询到原始上报数据与健康事件 ### 5.2 阶段二:服务端分析与指标计算 目标: * 形成总览页和节点详情页可直接消费的数据接口 当前状态: * 已完成 * 已落地总览级与节点级聚合接口、当前窗口摘要、状态码/域名/来源分布、系统健康摘要与异常节点清单 * 已落地最近 24 小时 CPU、内存、网络、磁盘 IO 趋势聚合,并统一总览页与节点详情页的统计口径 任务: * 计算当前节点 QPS、访问次数、访问人数 * 计算访问来源分布、访问趋势、状态码分布 * 生成最近 24 小时 CPU、网络、磁盘 IO 趋势数据 * 统一总览级与节点级查询口径 * 生成整体健康摘要与异常节点清单 验收标准: * 同一时间窗口下总览与节点详情的数据口径一致 * 核心统计字段可被测试覆盖,避免明显统计偏差 * 24 小时趋势查询在现有基线上可接受,不出现明显不可用卡顿 * 首页可直接定位离线、异常、配置落后和容量风险节点 ### 5.3 阶段三:总览页改造 目标: * 让总览页从“摘要入口页”升级为“运营与状态看板页” 当前状态: * 已完成 * 已完成全球态势板、节点真实地图落点、系统健康摘要、峰值摘要、24 小时请求/容量/网络/磁盘趋势、来源分布、状态码分布、Top Domain、Top 节点榜单、处置建议、节点健康列表、活动异常与节点页筛选联动 * 页面已覆盖首页级加载态、错误态,以及地图/趋势/分布图自身空态,满足第六版当前总览页交付范围 任务: * 实现世界地图节点看板 * 重构首屏布局,减少对称摘要卡片堆叠 * 增加系统健康摘要、趋势图、来源分布、状态码分布、节点异常摘要 * 为地图、趋势和分布图补齐加载态、空态和错误态 验收标准: * 总览首屏可直接看到全部节点分布 * 总览页能展示比旧版更多的实时、趋势与健康信息 * 页面在桌面和移动端都能稳定显示 ### 5.4 阶段四:节点详情页改造 目标: * 让节点详情页回到运维排障视角,提升信息密度和首屏价值 当前状态: * 已完成 * 已完成系统画像、实时资源、网络流量三块核心卡,以及诊断摘要、24 小时 CPU/请求/网络/磁盘 IO 趋势、请求结构分布、Top Domain、健康事件时间线与运维模块下移 * 页面已覆盖首屏识别、资源判断、流量判断与后续排障所需的关键模块,满足第六版当前节点详情页交付范围 任务: * 第一行实现系统信息、实时资源占用、网络流量三块核心卡片 * 系统信息新增操作系统、内核、架构、CPU 型号、在线时长 * 网络流量卡片展示 OpenResty 入站/出站流量,自适应单位 * 第二行实现最近 24 小时 CPU、网络、磁盘 IO 趋势图 * 第三行承接当前目标版本、OpenResty 健康、健康事件与应用记录等现有高价值模块 * 移除低价值重复信息 验收标准: * 节点详情首屏信息密度明显高于旧版 * 第一屏即可完成系统识别、资源判断和流量判断 * 趋势图可用于观察节点最近 24 小时性能变化 --- ## 6. 第六版执行原则 第六版执行时遵循: * 先遵守 `docs/design.md` 的系统边界 * 再遵守 `docs/development-guidelines.md` 与 `docs/frontend-development-guidelines.md` * 数据采集优先走 heartbeat 批量上报,不新增独立常驻推流通道 * 前端优先消费服务端聚合结果,不在浏览器做重型统计 * 优先建设新的观测聚合链路,不继续在旧 `nodes` 列表接口与旧首页卡片上补丁式叠加字段 * 总览页与节点详情页都必须同时覆盖加载态、空态、错误态和亮暗主题 * 若第六版实现过程中需要新增基础设施或改变保留策略,必须先更新设计文档 --- ## 7. 第六版总体验收标准 完成第六版时至少满足: * Agent 能在 heartbeat 中稳定上报请求数据、系统信息和性能快照 * Server 能基于上报数据计算 QPS、访问次数、访问人数、访问来源分布、访问趋势、状态码统计 * Server 能稳定生成系统健康摘要、异常节点清单和配置追平状态 * 总览页包含世界地图看板,并替换旧版以摘要卡片为主的单调结构 * 节点详情页包含系统信息卡、实时资源占用卡、网络流量卡、健康事件区与最近 24 小时趋势图 * 节点详情页保留当前目标版本等关键运维信息,但整体层级比旧版更清晰 * 第六版不破坏现有 Agent 心跳、同步、发布、回滚主链路