nacos-group / r-nacos

Nacos server re-implemented in Rust.
https://r-nacos.github.io/docs/
Apache License 2.0
807 stars 84 forks source link

项目开发计划(2024-06,2024-07) #104

Closed heqingpan closed 1 month ago

heqingpan commented 3 months ago

发布时间: 每周开一个发布窗口,发布已完成测试验证的变更。

需求任务认领方式:查看issue对应的任务说明在issuce下回复认领,或者联系作者认领;完成开发之后提交pr即可。

模块 需求任务 状态 开发者 测试状态 备注
注册中心 缺失能力:nacos 订阅者列表查看 待认领
配置中心 支持灰度发布 待认领
数据存储 考虑使用绝对路径存放应用数据 待开发 heqingpan 不完全向下兼容
数据存储
通过中间数据文件,支持数据备份、恢复、迁移 待开发 heqingpan
运维-可观测 支持提供prometheus metrics数据 已完成 heqingpan
运维-可观测 控制台增加监控页面支持查看r-nacos监控指标数据 开发中 heqingpan
测试质量 提供不同语言SDK的使用样例 待认领 sdk使用样例,也可以当做手动测试样例
测试质量 补充不同场景自动测试用例 待认领
控制台 支持配置关闭验证码 待认领
控制台-前端 控制台前端重构版本v0.4.x 开发完成 DaqiongYang 测试中 后续的控制台内容计划基于v0.4.x开发;后续的控制台前端依赖此任务。
控制台-前端 建议创建命名空间时自动创建命名空间ID 待认领
控制台-前端
移动端适配 开发中 DaqiongYang
控制台-前端-编辑器 对增强yaml,json等格式校验提示 待认领
控制台-前端-编辑器
编辑器增加对properties,toml格式的支持 待认领 目前编辑器使用的是codemirror6,暂时找不到现成的properties,toml语言插件,可能需要实现对应插件。
控制台-前端
控制台登陆页面,验证码回车后触发登录 开发中
DaqiongYang
控制台-前端
编辑配置不可改id与分组,支持克隆创建配置 待认领
控制台-前端
把当前选择的命名空间保存到 localStorage(浏览器本地), 不用每次都 public 开发中
DaqiongYang

上面的表格内容会持续更新,部分任务内容待进一步细化。

heqingpan commented 2 months ago

【2024-06-18记录】

开始开发 支持提供prometheus metrics数据

(这段时间工作上比较忙,能投入的时间相对较少,开发完成时间估计要到下周)

heqingpan commented 2 months ago

【2024-06-23】

完成监控指标模块开发; 完成服务运行时、配置中心、注册中心、grpc链接管理核心监控指标的定义与采集; 完成指定间隔采集监控指标,并把指标打印到日志功能; (这部分内容已发布到v0.5.13版本中)

heqingpan commented 2 months ago

【2024-06-30】

  1. 修复登录接口兼容问题,解决nacos-sdk-rust无法使用enable_auth_plugin_http进行账号密码登录的问题; #110
  2. 初步完成支持prometheus metrics数据开发;#64
    1. 增加指标采集间隔配置,默认15秒,与原日志打印指标间隔独立控制;以支持打印日志的间隔设置很长与就影响采集;
    2. 支持采集summary类指标数据,对http/grpc请求响应时长分别采集其对应的histogram与summary指标;
    3. 实现prometheus metrics exporter,支持把监控指标数据接入prometheus,对应的接口为http://127.0.0.1:8848/metrics ;
  3. PR: 调整k8s helm中service ports的定义,增加10848端口,以支持ingress方式透出控制台;#112
  4. r-nacos v0.5.14版本发布
  5. 投入控制台前端重构版本v0.4.x测试工作
    1. 梳理控制台回归测试用例 ,总共40个用例
    2. 基于测试用例完成一遍回归测试,发现7个有问题或待优化的场景,其中2个影响正常使用;预计下周可完成问题修复并发布。
heqingpan commented 2 months ago

【2024-07-01】

加了prometheus metrics exporter后,补个服务注册压测,看看对应的metrics数据。

2024-07-01 08-49-42屏幕截图

# HELP http_request_handle_rt_histogram Http request handle rt histogram,unit is ms
# TYPE http_request_handle_rt_histogram histogram
http_request_handle_rt_histogram_bucket{le="0.25"} 694097
http_request_handle_rt_histogram_bucket{le="0.5"} 1398219
http_request_handle_rt_histogram_bucket{le="1"} 2001504
http_request_handle_rt_histogram_bucket{le="3"} 3035785
http_request_handle_rt_histogram_bucket{le="5"} 3925203
http_request_handle_rt_histogram_bucket{le="10"} 5002069
http_request_handle_rt_histogram_bucket{le="25"} 5071141
http_request_handle_rt_histogram_bucket{le="50"} 5077845
http_request_handle_rt_histogram_bucket{le="100"} 5093420
http_request_handle_rt_histogram_bucket{le="300"} 5098390
http_request_handle_rt_histogram_bucket{le="500"} 5098390
http_request_handle_rt_histogram_bucket{le="+Inf"} 5098390
http_request_handle_rt_histogram_sum 16318938.656
http_request_handle_rt_histogram_count 5098390
# HELP http_request_handle_rt_summary Http request handle rt summary,unit is ms
# TYPE http_request_handle_rt_summary summary
http_request_handle_rt_summary{quantile="0.5"} 2.059076
http_request_handle_rt_summary{quantile="0.6"} 3.052279
http_request_handle_rt_summary{quantile="0.7"} 4.198734
http_request_handle_rt_summary{quantile="0.8"} 5.712758
http_request_handle_rt_summary{quantile="0.9"} 8.079993
http_request_handle_rt_summary{quantile="0.95"} 9.263608
http_request_handle_rt_summary{quantile="1"} 300.000000
http_request_handle_rt_summary_sum 16318938.656
http_request_handle_rt_summary_count 5098390

压测数据,1000个服务,每个服务480个实例,总共是1000*480 =480000个实例。 压测结果: 服务注册rps 4.8万,50%请求rt小于2.68ms,95%请求rt小于9.5ms

某个时间点的metrics数据,感兴趣的可以看看metrics文件:

06.log

heqingpan commented 2 months ago

【2024-07-07】

通过增加文件锁机制,修复windows环境快速关闭再启动r-nacos后偶尔出现配置列表为空的问题。 #86 #88

heqingpan commented 1 month ago

【2024-07-15】

  1. 可观测能力增强,控制台增加监控页面支持查看r-nacos监控指标数据
    1. r-nacos后端,内部采集并缓存最近指标数据,并提供查询监控指标数据接口给控制台页面使用。#117
    2. r-nacos前端,控制台增加基于echarts实现的监控页面,支持查看r-nacos监控指标数据。r-nacos/rnacos-console-web#10
  2. 通过调整数据加载与raft初始化顺序,修复windows环境快速关闭再启动r-nacos后偶尔出现配置列表为空的问题。 #86
  3. 增加nacos-spring-boot-config-example使用示例 #48
heqingpan commented 1 month ago

【2024-07-29】

本周处理兼容性问题与优化监控子系统功能。

  1. 兼容nacos注册中心1.x http协议中metadata同时支持json与nacos自定义格式 #121
  2. 优化r-naocs系统监控;间隔为1小时的指标时间展示增加日期,增加请求处理时长百分位统计监控视图
heqingpan commented 1 month ago

本issue是时间段计划,7月已过,准备关闭本issue。

上面列表的需求点,主要完成系统指标监控相关功能开发与一些issuce问题修复,大概只完成一半左右。

与计划出入比较大的原因之一是控制台前端重构开发和原计划出入较大。原前端共建开发同学所在公司有裁员动作,他后续没有太多精力投入。这算不可抗拒因素,可以理解,也祝福他后续工作能稳定。因此本人多投入部份精力到控制台前端开发,后端部分进度也比计划落后。

项目开发策略:优先解决线上问题,计划待办事项按节奏推进,如果完不成就移到下个阶段。

剩余计划待办会移到下个阶段计划中。