mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-29 05:56:38 +08:00
bdfa80f214
- Updated BuildSnapshot function to include OpenResty metrics. - Enhanced BuildTrafficReport to utilize managed OpenResty metrics. - Introduced new functions for parsing access logs in both JSON and combined formats. - Added tests for traffic report generation from combined access logs. - Implemented local observability metrics collection from OpenResty. - Created Lua scripts for OpenResty to gather observability data. - Updated configuration documentation to include new observability port and settings. - Added support for OpenResty observability in the server configuration.
12 KiB
12 KiB
ATSFlare 开发计划
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 第六版要做
-
节点数据采集与上报
- Agent 在每次 heartbeat 时上报最近周期内的请求数据
- Agent 同步上报节点系统画像、CPU/内存/存储快照、磁盘 IO、OpenResty 入站/出站流量
- 新增在线时长、操作系统、内核、架构、CPU 型号、逻辑核数、总内存、磁盘布局等节点维度信息
- 采集节点健康事件,覆盖离线、OpenResty 不健康、配置未追平、资源逼近阈值和错误率异常
-
服务端访问分析
- 基于请求数据计算当前节点 QPS、访问次数、访问人数
- 统计访问来源分布、访问趋势、状态码分布等核心指标
- 支持总览维度与节点维度两套查询视图
- 生成系统整体健康摘要,回答“是否健康、是否有风险、问题集中在哪些节点”
-
总览页改造
- 首屏新增世界地图看板,用于展示全部节点分布与在线状态
- 调整总览信息结构,不再以单一“四卡摘要”作为主布局
- 增加趋势、分布、Top 榜单、容量风险和异常信号展示
- 引入类似 WAF/安全运营面板的信息组织方式,但聚焦 ATSFlare 当前系统健康与流量状态
-
节点详情页改造
- 第一行重构为三块核心卡片:系统信息、实时资源占用、网络流量监控
- 第二行展示最近 24 小时历史趋势,至少覆盖 CPU、网络、磁盘 IO
- 第三行接续当前目标版本与应用记录等运维信息
- 清理低价值、重复、信息密度低的展示模块
-
架构可扩展性治理
- 将节点观测拆分为静态画像、动态快照、窗口聚合、健康事件四类数据
- 为总览页和节点详情页建立专用聚合接口,不继续依赖旧列表接口临时拼装
- 控制原始数据保留窗口和聚合粒度,避免后期查询、存储和维护成本失控
3.2 第六版不做
- 不引入 Prometheus、ClickHouse、Kafka、ElasticSearch 等新基础设施
- 不建设通用日志检索平台、APM 平台、调用链追踪平台
- 不扩展为 GeoDNS、全球流量调度、节点智能选路系统
- 不做任意自定义报表、任意维度 OLAP 查询或外部 BI 接入
4. 第六版实施顺序
建议按以下顺序推进:
-
定义数据模型与 heartbeat 扩展协议
- 明确系统画像结构、请求数据批次结构、资源快照结构、聚合结果结构与健康事件结构
- 补齐保留策略、体积限制和失败回退规则
-
完成 Agent 采集链路
- 采集请求窗口聚合
- 采集系统画像与运行时性能指标
- 采集 OpenResty 入站/出站流量
- 归并节点健康事件并挂入 heartbeat 上报
-
完成 Server 入库与分析链路
- 接收并校验 heartbeat 扩展数据
- 入库存储系统画像、原始批次、资源快照和健康事件
- 生成总览页与节点详情页所需聚合统计与系统健康摘要
-
完成总览页改造
- 世界地图看板
- 系统健康摘要区
- 核心访问指标区
- 访问趋势与来源分布区
- 节点状态、配置追平与异常摘要区
-
完成节点详情页改造
- 系统信息卡片
- 实时仪表盘与网络流量卡片
- 24 小时趋势图
- 下移并重组当前目标版本、健康事件与应用记录
-
补齐回归验证
- 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 心跳、同步、发布、回滚主链路