Skip to content

Commit cbf1a10

Browse files
committed
doc(Metrics&Alert):更新修改监控/告警处理模块README,拆分 api、数据表文档
1 parent e0cab18 commit cbf1a10

File tree

1 file changed

+84
-99
lines changed

1 file changed

+84
-99
lines changed

internal/alerting/README.md

Lines changed: 84 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,130 @@
1-
好的 ✅
2-
我帮你整理一个完整的 README 文档,包括模块说明、目录结构、API 示例、数据库设计、以及后续扩展说明。这样团队成员在接手或协作时能快速上手。
1+
# Monitoring & Alerting Service
32

4-
3+
## 概述
54

6-
Monitoring & Alerting Service
5+
本模块提供 监控/告警处理能力,实现从告警接收到自动治愈的完整生命周期管理。
76

8-
📌 概述
7+
**核心思想:**
8+
- 告警规则采用 模版 + 服务元数据 (Metadata) 的方式定义,便于统一管理和灵活扩展。
9+
- 支持自动化处理、AI 辅助分析和多级告警分级。
910

10-
本服务为 监控 / 告警处理模块,用于统一接收、存储、处理、恢复和记录告警信息。它提供了标准化的 API 接口,支持告警生命周期管理、规则调整、告警元数据管理、周期性健康检查、告警等级计算,以及自动化治愈行为处理。
11+
---
1112

12-
目标:
13-
• 提高告警处理自动化程度
14-
• 支持 AI/系统/人工协同处理
15-
• 为平台提供可追踪的告警问题管理与分析
16-
17-
18-
19-
📂 目录结构
13+
## 目录结构
2014

15+
```
2116
alerting/
22-
├── api/ # API 接口层,定义 HTTP handler
23-
├── database/ # 数据库相关定义和 migration
24-
├── model/ # 数据模型 (ORM/DTO)
17+
├── api/ # API 接口层,提供 RESTful 访问
18+
├── database/ # 数据库定义和 migration
19+
├── model/ # 数据模型 (ORM / DTO)
2520
├── service/ # 核心业务逻辑
2621
│ ├── receiver/ # 告警接收与处理
27-
│ ├── rules/ # 告警规则调整
28-
│ ├── metadata/ # 监控与告警元数据
22+
│ ├── ruleset/ # 告警规则模版 + metadata
2923
│ ├── healthcheck/ # 周期体检任务
3024
│ ├── severity/ # 告警等级计算
3125
│ └── remediation/ # 自动化治愈行为
3226
└── README.md # 项目说明文档
27+
```
28+
29+
30+
---
3331

32+
## 数据库设计
3433

35-
34+
数据库采用4张核心表设计:告警问题表、评论表、模版表和服务元数据表。
3635

37-
🗄 数据库设计
36+
详细的表结构设计、索引建议和性能优化方案请参考:**[数据库设计文档](../../docs/alerting/database-design.md)**
3837

39-
1) alert_issues(告警问题表)
4038

41-
字段名 类型 说明
42-
id varchar(255) PK 告警 issue ID
43-
state enum(Closed, Open) 告警状态
44-
level varchar(32) 告警等级,如 P0/P1/P2/Warning
45-
alertState enum(Restored, AutoRestored, InProcessing) 告警处理状态
46-
title varchar(255) 告警标题
47-
label json 标签,格式:[{key, value}]
48-
alertSince timestamp 告警发生时间
39+
---
4940

41+
## 告警规则机制
5042

51-
43+
告警规则由两部分组成:
5244

53-
2) alert_issue_comments(告警评论表)
45+
### 1. 模版 (Template)
5446

55-
字段名 类型 说明
56-
issueID varchar(255) FK 对应 alert_issues.id
57-
createAt timestamp 评论创建时间
58-
content text Markdown 格式,记录 AI/系统/人工动作
47+
定义规则逻辑,带占位符:
5948

49+
```json
50+
{
51+
"id": "tmpl_apitime",
52+
"expr": "apitime > {apitime_threshold}",
53+
"level": "P1"
54+
}
55+
```
6056

61-
57+
### 2. 服务 Metadata (Service Config)
6258

63-
🌐 API 接口
59+
不同服务定义不同的阈值:
6460

65-
1. 获取告警列表
61+
```json
62+
{
63+
"serviceA": { "apitime_threshold": 100 },
64+
"serviceB": { "apitime_threshold": 50 }
65+
}
66+
```
6667

67-
GET /v1/issues?start=xxxx&limit=10[&state=Closed]
68+
### 3. 展开后的实际规则 (Resolved Rule)
6869

69-
Response
70+
模版 + metadata → 生成实际规则:
7071

72+
```json
7173
{
72-
"items": [
73-
{
74-
"id": "xxx",
75-
"state": "Closed",
76-
"level": "P0",
77-
"alertState": "Restored",
78-
"title": "yzh S3APIV2s3apiv2.putobject 0_64K上传响应时间95值:50012ms > 450ms",
79-
"labels": [
80-
{"key": "api", "value": "s3apiv2.putobject"},
81-
{"key": "idc", "value": "yzh"}
82-
],
83-
"alertSince": "2025-05-05 11:00:00.0000Z"
84-
}
85-
]
74+
"service": "serviceA",
75+
"expr": "apitime > 100",
76+
"level": "P1"
8677
}
78+
```
8779

80+
```json
81+
{
82+
"service": "serviceB",
83+
"expr": "apitime > 50",
84+
"level": "P1"
85+
}
86+
```
8887

89-
9088

91-
2. 获取告警详情
89+
---
9290

93-
GET /v1/issues/:issueID
91+
## 流程图
9492

95-
Response
93+
### 规则生成流程
9694

97-
{
98-
"id": "xxx",
99-
"state": "Closed",
100-
"level": "P0",
101-
"alertState": "Restored",
102-
"title": "yzh S3APIV2s3apiv2.putobject 0_64K上传响应时间95值:50012ms > 450ms",
103-
"labels": [
104-
{"key": "api", "value": "s3apiv2.putobject"},
105-
{"key": "idc", "value": "yzh"}
106-
],
107-
"alertSince": "2025-05-05 11:00:00.0000Z",
108-
"comments": [
109-
{
110-
"createAt": "2024-01-03T03:00:00Z",
111-
"content": "markdown content"
112-
}
113-
]
114-
}
95+
```mermaid
96+
flowchart TD
97+
TPL[告警模版<br/>(Templates)<br/>例: apitime > {apitime_threshold}] --> META
98+
META[服务 Metadata<br/>(Service Config)<br/>例: serviceA=100, serviceB=50] --> RESOLVED
99+
RESOLVED[实际告警规则<br/>(Resolved Rules)<br/>例: serviceA: apitime>100<br/>serviceB: apitime>50] --> ALERT
100+
ALERT[告警触发<br/>(Alert Trigger)<br/>生成 Issue & 进入处理流程]
101+
```
102+
103+
104+
---
105+
106+
## API 接口
115107

108+
服务提供 RESTful API 接口,支持告警列表查询、详情获取等核心功能。
116109

117-
110+
主要接口包括:
111+
- `GET /v1/issues` - 获取告警列表
112+
- `GET /v1/issues/{issueID}` - 获取告警详情
118113

119-
⚙️ Service 模块功能
114+
完整的接口文档、请求参数、响应格式和使用示例请参考:**[API 文档](../../docs/alerting/api.md)**
120115

121-
1. receiver/ 告警接收与处理
122-
• 统一接收外部监控系统告警(如 Prometheus、Grafana、内部 SDK)
123-
• 将原始告警写入数据库
124-
• 触发告警处理流程
125116

126-
2. rules/ 告警规则调整
127-
• 支持动态调整告警触发规则(如阈值、持续时间、条件组合)
128-
• 提供规则存储、加载与热更新
117+
---
129118

130-
3. metadata/ 监控与告警元数据
131-
• 存储告警相关上下文(服务信息、监控指标、依赖关系)
132-
• 便于查询与告警溯源
119+
## 模块功能说明
133120

134-
4. healthcheck/ 周期体检任务
135-
• 定时扫描核心服务,生成健康报告
136-
• 与告警系统集成,主动发现潜在风险
121+
- **receiver/**:统一接收告警,写入数据库,触发处理流程
122+
- **ruleset/**:管理告警模版 & 服务 metadata,生成实际规则
123+
- **healthcheck/**:周期性体检,提前发现潜在问题
124+
- **severity/**:计算告警等级 = 原始等级 + 影响范围
125+
- **remediation/**:自动化治愈动作(回滚),并记录处理日志
137126

138-
5. severity/ 告警等级计算
139-
• 综合 告警原始等级 + 影响范围(服务/用户/地区)
140-
• 动态调整告警优先级(如 P2 → P1)
127+
## 相关文档
141128

142-
6. remediation/ 自动化治愈行为
143-
• 提供预定义自动修复动作(重启服务、扩容、流量切换)
144-
• 支持 AI 推荐修复方案
145-
• 记录执行结果到 alert_issue_comments
129+
- [数据库设计文档](../../docs/alerting/database-design.md) - 详细的表结构和索引设计
130+
- [API 文档](../../docs/alerting/api.md) - RESTful API 接口规范

0 commit comments

Comments
 (0)