Skip to content

Commit c7dba12

Browse files
authored
Merge branch 'develop' into develop
2 parents fcfacdb + 97883fb commit c7dba12

26 files changed

+712
-68
lines changed

01-产品原型图.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# 产品原型图
2+
3+
## 1. 首页
4+
5+
### 整体服务状态View
6+
![整体服务状态View](photo/整体服务状态view.png)
7+
8+
**功能描述:**
9+
- 作为用户我可以观察到服务之间的依赖关系,父节点服务依赖子节点服务
10+
- 作为用户我可以观察到整体服务状态,绿色为服务正常,黄色为有异常AI正在观察和分析,红色为服务有异常。有标记的服务表示有版本灰度发布正在进行中
11+
12+
## 2. 服务详情页View及子页面View
13+
14+
### 服务详情页View
15+
![服务详情页View](photo/服务详情页view.png)
16+
17+
**功能描述:**
18+
- 作为用户我可以观察到该服务每个版本
19+
1. 版本号
20+
2. 发布状态(正常/异常/正在观察分析异常)
21+
3. 发布占比
22+
4. 四个黄金指标的实时数据统计表(延迟/流量/错误/饱和度)
23+
- 作为用户我可以观察到该服务特定版本
24+
1. 版本号
25+
2. 发布状态(正常/异常/正在观察分析异常)
26+
3. 发布占比
27+
4. 发布已经持续时间
28+
5. 预计完成时间
29+
6. 四个黄金指标的实时数据(延迟/流量/错误/饱和度)看板
30+
- 作为用户我可以对服务正在发布的版本进行暂停、继续操作
31+
- 作为用户我可以对服务任何版本进行回滚操作
32+
33+
### 版本发布View
34+
![版本发布View](photo/版本发布view.png)
35+
36+
**功能描述:**
37+
- 作为用户我可以对该服务创建灰度发布,指定发布版本,并可以看到目标版本的修改时间
38+
- 作为用户我可以对该服务创建灰度发布,立即/预定发布时间(准确到分钟)
39+
- 作为用户我不可以同时重复新建灰度发布相同版本(选择目标版本发布时不会显示正在发布的版本)
40+
41+
### 发布任务计划View
42+
![发布任务计划View](photo/下载任务计划view.png)
43+
44+
**功能描述:**
45+
- 作为用户我可以对该服务创建灰度发布时自动签名
46+
- 作为用户我可以修改发布时间
47+
- 作为用户我可以取消发布计划
48+
49+
### 服务指标View
50+
![服务指标View](photo/服务指标view.png)
51+
52+
**功能描述:**
53+
- 作为用户我可以观察到该服务版本四个黄金指标的实时数据统计看板(延迟/流量/错误/饱和度)
54+
55+
## 3. 系统状态变更记录页View及子页面View
56+
57+
### 服务变更记录View
58+
![服务变更记录View](photo/服务变更记录view.png)
59+
60+
**功能描述:**
61+
- 作为用户我可以观察到哪些服务进行了版本发布,完成了多少,健康状态
62+
- 作为用户我可以观察到服务版本发布每一批次的开始时间、结束时间、健康状态
63+
64+
### 告警规则变更记录View
65+
![告警规则变更记录View](photo/告警规则变更view.png)
66+
67+
**功能描述:**
68+
- 作为用户我可以观察哪些告警阈值进行了变更,变更了多少,与变更理由
69+
70+
### 事件日志View
71+
(图像待补充)
72+
73+
**功能描述:**
74+
- 作为用户我可以观察到服务版本发布每一批次的详细每一个事件的发生时间、健康状态、事件类型、事件详细数据
75+
- -> AI决策过程
76+
77+
## 4. 告警记录页View及AI分析页面View
78+
79+
> **⚠️ 重要原则:AI分析不要重复解决相同问题**
80+
81+
#### 告警是否关联发布服务
82+
- 告警触发,判断是否与正在灰度的服务有关
83+
- Mock系统里需要将告警带上service与version标签
84+
- 下游服务发布导致上游异常,收到上游告警,看告警服务的依赖项有没有正在发布
85+
### 告警记录View
86+
![告警记录View1](photo/告警记录view1.png)
87+
![告警记录View2](photo/告警记录view2.png)
88+
89+
90+
91+
### AI分析处理记录View
92+
93+
> **🔄 智能规划机制:如果一轮任务规划没有完成任务,会根据上文信息进行新一轮plan,生成新的plan列表**
94+
![AI分析处理记录View1](photo/AI分析处理记录View.png)
95+
![AI分析处理记录View2](photo/AI分析处理记录view2.png)
96+
![AI分析处理记录View3](photo/AI分析处理记录view3.png)
97+
98+
99+

02-数据表设计.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# 数据表设计
2+
3+
## 表结构
4+
5+
![表结构图](otherPhoto/表结构.png)
6+
7+
## 查询
8+
### 1. 查询某个服务的所有发布任务及对应发布状态
9+
- **涉及表:** `service``service_deploy_task`
10+
- **说明:** 通过 `service.id``service_deploy_task.service_id` 关联,可获取指定服务的所有发布任务记录,包括任务创建者、发布开始 / 结束时间、发布状态等信息。
11+
12+
### 2. 查询某个发布任务下的所有发布批次及批次详情
13+
- **涉及表:** `service_deploy_task``deploy_batch`
14+
- **说明:** 利用 `service_deploy_task.id``deploy_batch.deploy_id` 关联,能得到该发布任务下各批次的开始 / 结束时间、目标发布比例、实际发布节点列表等批次相关信息。
15+
16+
### 3. 查询某个服务版本的异常状态信息
17+
- **涉及表:** `service_version``service_state`
18+
- **说明:** 通过 `service_version.id``service_state.version_id` 关联,可查询到该服务版本对应的异常级别、详细信息、报告时间、解决时间以及健康状态等异常相关数据。
19+
20+
### 4. 查询某个发布批次实际发布的节点及节点对应的服务版本
21+
- **涉及表:** `deploy_batch``service_node`
22+
- **说明:** 依据 `deploy_batch.node_ids``service_node.node_id` 关联,能获取到该发布批次实际发布的节点,以及这些节点对应的服务版本等信息。
23+
24+
### 5. 查询某个服务的所有版本及其创建时间
25+
- **涉及表:** `service`(服务基础信息)、`service_version`(服务版本)
26+
- **说明:** 通过 `service.id``service_version.service_id` 关联,可列出指定服务的所有版本以及各版本的创建时间
27+
28+
### 6. 查询某个发布任务的所有操作日志
29+
- **涉及表:** `service_deploy_task``event_logs`
30+
- **说明:** 通过 `service_deploy_task.correlation_id``event_logs.correlation_id` 关联,可获取指定发布任务的所有操作日志记录,包括事件类型、事件详情、操作人、发生时间等信息。
31+
32+
### 7. 查询某个服务异常的所有告警日志
33+
- **涉及表:** `alert_issues``alert_issue_comments`
34+
- **说明:** 通过 `alert_issues.id``alert_issue_comments.issue_id` 关联,可获取指定服务异常的所有告警日志记录,包括告警状态、告警分级、告警评论等信息。

03-概要模块设计.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# 概要模块设计
2+
3+
## 架构图
4+
5+
![架构图](otherPhoto/架构图.png)
6+
7+
## 模块调用关系
8+
9+
### Web层
10+
11+
| 调用模块 | 被调用模块 | 说明 |
12+
|---------|-----------|------|
13+
| Web层-整体服务状态 | Controller层-服务状态 | 收集系统各服务运行状态,在前端界面宏观展示各服务运行情况 |
14+
| Web层-整体服务状态 | Controller层-服务状态 | 收集系统各服务详细信息,在前端界面展示具体某一服务的详细信息 |
15+
| Web层-发布任务管理及其子页面 | Controller层-发布任务管理 | 获取系统中全部的发布任务和可用服务版本,供用户在前端查看发布任务的执行过程,或选择某一版本的服务创建新的发布任务 |
16+
| Web层-系统变更记录及其子页面 | Controller层-系统变更 | 获取变更记录,变更行为包括服务版本变更和告警阈值变更 |
17+
| Web层-事件详情日志 | Controller层-事件详情日志获取 | 获取日志详情,用户可在界面中查看每一次事件的处理记录 |
18+
| | | |
19+
20+
21+
### Controller层
22+
23+
| 调用模块 | 被调用模块 | 说明 |
24+
|---------|-----------|------|
25+
| Controller层-服务状态 | 应用层-服务信息获取 | 获取系统中各服务的详细信息,包括服务列表、服务状态、服务详情、服务指标、服务状态 |
26+
| Controller层-发布任务管理 | 应用层-发布任务管理与执行 | 在新建发布任务场景下,负责制定灰度策略、选择监控指标、生成发布计划;在发布管理场景下,获取各阶段发布信息,并提供暂停/取消控制功能 |
27+
| Controller层-事件详情日志获取 | 应用层-event_log记录 | 获取变更记录,变更行为包括服务版本变更和告警阈值变更 |
28+
| | | |
29+
30+
31+
### 应用层
32+
33+
| 调用模块 | 被调用模块 | 说明 |
34+
|---------|-----------|------|
35+
| 应用层-服务信息获取 | 基础设施层-发布系统Adapter | 获取系统中的服务信息数据 |
36+
| 应用层-发布任务管理与执行 | 基础设施层-发布系统Adapter | 调用发布行为接口,获取系统中的发布信息数据 |
37+
| 应用层-告警接收与处理 | 基础设施层-Prometheus&监控系统Adapter | 持续监听监控系统发出的告警信息 |
38+
| 应用层-告警接收与处理 | 指标分析层-指标下钻分析(AI) | 调用AI对告警进行分析,并执行后续处理(故障自愈、告警规则调整) |
39+
| 应用层-运行体检中心 | 指标分析层-指标下钻分析(AI) | 定期调用AI对系统指标进行检测,实现定时系统安全体检 |
40+
| 应用层-运行体检中心 | 应用层-event_log记录 | 记录定时体检系统指标的执行过程和结果 |
41+
| | | |
42+
43+
44+
### 指标分析层
45+
46+
| 调用模块 | 被调用模块 | 说明 |
47+
|---------|-----------|------|
48+
| 指标分析层-指标下钻分析 | 基础设施层-Prometheus&监控系统Adapter | 获取指标数据用于下钻分析;获取系统告警信息,分析后决策是否调整告警规则 |
49+
| 指标分析层-指标下钻分析 | 指标分析层-异常指标分析 | 对某一个异常指标进行下钻分析,定位问题根源 |
50+
| 指标分析层-指标下钻分析 | 应用层-治愈行为处理 | AI做出决策后调用治愈行为处理模块执行故障治愈 |
51+
| 指标分析层-指标下钻分析 | 应用层-告警规则处理 | AI做出决策后调用告警规则处理模块执行告警规则调整 |
52+
| 指标分析层-指标下钻分析 | 应用层-event_log记录 | 记录AI每一步的数据获取、分析和决策过程 |
53+
| 指标分析层-异常指标分析 | 基础设施层-Prometheus&监控系统Adapter | 获取指标数据进行下钻分析 |
54+
| 指标分析层-异常指标分析 | 基础设施层-日志查询 | 获取日志数据定位问题根源 |
55+
| 指标分析层-异常指标分析 | 应用层-event_log记录 | 记录AI每一步数据获取、分析和决策过程 |
56+
| | | |
57+
58+
59+
技术选型:
60+
- DB -> Postgres
61+
- 后端web框架:fox(gin的包装)
62+
- 日志记录库:zerolog
63+
- 前端页面选型:Vue
64+
- 前端Controller:fox
65+
66+
67+
## 演示流程
68+
69+
**页面静态信息获取与展示,基本对完**
70+
71+
**动态流程列表:**
72+
73+
1. **新建一批发布任务,发布系统能够进行发布**
74+
- a. 新建(立即发布、预发布)
75+
- i. 自动生成灰度策略
76+
- b. 暂停
77+
- c. 取消
78+
- d. 获取基本信息(粒度到实例的服务版本)
79+
80+
2. **模拟告警触发(可分为发布实例告警触发、不是正在进行发布的服务实例触发)**
81+
- a. step1 告警触发
82+
- b. step2 告警issue创建
83+
- c. 模块告警事件处理(30秒定时,模拟恢复;10秒自动恢复模拟;30秒系统帮忙恢复)
84+
- i. 治愈行为触发(正在发布的实例的处理是回滚;已经发布完成的实例异常提示不支持)
85+
- ii. 告警规则调整(生成新的一条告警规则变更记录)
86+
- d. 定时体检触发,体检服务的所有指标是否正常。
87+
- i. 告警规则调整

0 commit comments

Comments
 (0)