forked from AutohomeCorp/frostmourne
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfrostmourne.sql
327 lines (290 loc) · 15.2 KB
/
frostmourne.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
CREATE DATABASE frostmourne
DEFAULT CHARACTER SET utf8mb4
DEFAULT COLLATE utf8mb4_0900_ai_ci;
/* if your mysql not support utf8mb4_0900_ai_ci, use collate utf8mb4_general_ci instead */
--CREATE DATABASE frostmourne DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
use frostmourne;
/*------------------------------------------- create alarm---------------------------------------------------------------------*/
DROP TABLE IF EXISTS alarm;
CREATE TABLE IF NOT EXISTS alarm
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
alarm_name VARCHAR(100) NOT NULL COMMENT '监控名称',
alarm_type VARCHAR(200) NOT NULL COMMENT '监控数据类型。(http: http监控;其他值: 关联data_name表)',
description VARCHAR(1000) NOT NULL COMMENT '监控描述',
owner_key VARCHAR(200) COMMENT '所属对象关键字',
status VARCHAR(50) NOT NULL COMMENT '开关状态(OPEN,CLOSE)',
execute_result VARCHAR(50) NOT NULL DEFAULT 'NONE' COMMENT '最近一次执行结果',
execute_at DATETIME COMMENT '最近一次执行时间',
job_id BIGINT NOT NULL DEFAULT 0 COMMENT '调度任务id',
cron VARCHAR(500) NOT NULL COMMENT 'cron表达式',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modifier VARCHAR(200) NOT NULL COMMENT '修改人',
modify_at DATETIME NOT NULL COMMENT '修改时间',
team_name VARCHAR(200) NOT NULL COMMENT '监控所属团队'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '监控报警';
ALTER TABLE alarm
ADD INDEX idx_ownerkey (owner_key(20));
/*------------------------------------------- create alarm_log -------------------------------------------*/
DROP TABLE IF EXISTS alarm_log;
CREATE TABLE IF NOT EXISTS alarm_log
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
alarm_id BIGINT NOT NULL COMMENT '监控ID',
exe_start DATETIME NOT NULL COMMENT '监控任务执行开始时间',
exe_end DATETIME NOT NULL COMMENT '监控任务执行结束时间',
cost INT NOT NULL COMMENT '监控任务执行耗时,单位:毫秒',
execute_result VARCHAR(50) NOT NULL COMMENT '执行结果(SUCCESS,ERROR)',
verify_result VARCHAR(50) NOT NULL DEFAULT 'NONE' COMMENT 'NONE,TRUE,FALSE',
message TEXT COMMENT '日志消息',
create_at DATETIME NOT NULL COMMENT '创建时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '监控任务执行日志';
ALTER TABLE alarm_log
ADD INDEX idx_createat_alarmid (create_at, alarm_id);
/*------------------------------------------- create alert -------------------------------------------*/
DROP TABLE IF EXISTS alert;
CREATE TABLE IF NOT EXISTS alert
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
alarm_id BIGINT NOT NULL COMMENT '监控ID',
ways VARCHAR(500) NOT NULL COMMENT '报警方式(sms,dingding,email,http_post,wechat)',
silence BIGINT NOT NULL COMMENT '静默时间,单位:分钟',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
allow_sms_from INTEGER NULL COMMENT '短信允许发送开始时间,[0,23]',
allow_sms_to INTEGER NULL COMMENT '短信允许发送结束时间,[0,23]',
ding_robot_hook VARCHAR(500) NULL COMMENT '钉钉机器人hook地址',
http_post_url VARCHAR(500) COMMENT 'http post报警方式地址',
wechat_robot_hook VARCHAR(500) NULL COMMENT '企业微信机器人hook地址'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '报警配置';
ALTER TABLE alert
ADD INDEX idx_alarmid (alarm_id);
/*------------------------------------------- create alert_log -------------------------------------------*/
DROP TABLE IF EXISTS alert_log;
CREATE TABLE IF NOT EXISTS alert_log
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
alarm_id BIGINT NOT NULL COMMENT '监控ID',
execute_id BIGINT NOT NULL COMMENT '监控执行ID',
way VARCHAR(100) NOT NULL COMMENT '报警方式',
recipient VARCHAR(100) NOT NULL COMMENT '报警接收人',
content TEXT NOT NULL COMMENT '报警内容',
in_silence VARCHAR(50) NOT NULL COMMENT '是否在静默期(YES,NO)',
send_status VARCHAR(50) NOT NULL COMMENT '发送状态(NONE,SUCCESS,FAIL,FORBID)',
alert_type VARCHAR(50) NOT NULL COMMENT '消息类型(问题报警: PROBLEM; 恢复通知: RECOVER)',
create_at DATETIME NOT NULL COMMENT '创建时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '报警日志';
ALTER TABLE alert_log
ADD INDEX idx_createat_recipient (create_at, recipient);
ALTER TABLE alert_log
ADD INDEX idx_alarmid (alarm_id);
/*------------------------------------------- create data_mapping -------------------------------------------*/
DROP TABLE IF EXISTS data_mapping;
CREATE TABLE IF NOT EXISTS data_mapping
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
data_name VARCHAR(200) NOT NULL COMMENT '数据名称',
field_name VARCHAR(200) NOT NULL COMMENT '字段名',
field_type VARCHAR(200) NOT NULL COMMENT '字段类型',
field_description VARCHAR(500) NOT NULL COMMENT '字段说明',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modifier VARCHAR(200) NOT NULL COMMENT '修改人',
modify_at DATETIME NOT NULL COMMENT '修改时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '数据名字段说明';
ALTER TABLE data_mapping
ADD INDEX idx_dataname (data_name(20));
/*------------------------------------------- create data_name -------------------------------------------*/
DROP TABLE IF EXISTS data_name;
CREATE TABLE IF NOT EXISTS data_name
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
data_name VARCHAR(200) NOT NULL COMMENT '数据名称,不可更新',
display_name VARCHAR(200) NOT NULL COMMENT '名称描述',
data_source_id BIGINT NOT NULL COMMENT '所属数据源id',
datasource_type VARCHAR(500) NOT NULL COMMENT '数据源类型。(Elasticsearch, Influxdb)',
timestamp_field VARCHAR(200) COMMENT '时间字段名',
properties VARCHAR(2000) NOT NULL COMMENT '不同数据的附加属性',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modifier VARCHAR(200) NOT NULL COMMENT '修改人',
modify_at DATETIME NOT NULL COMMENT '修改时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '数据名';
CREATE UNIQUE INDEX uniq_dataname ON data_name (data_name);
/*------------------------------------------- create data_source -------------------------------------------*/
DROP TABLE IF EXISTS data_source;
CREATE TABLE IF NOT EXISTS data_source
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
datasource_name VARCHAR(500) NOT NULL COMMENT '数据源名称',
datasource_type VARCHAR(500) NOT NULL COMMENT '数据源类型。(Elasticsearch, Influxdb)',
service_address VARCHAR(500) NOT NULL COMMENT '数据源服务地址',
properties VARCHAR(2000) COMMENT '附加属性。json格式',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modifier VARCHAR(200) NOT NULL COMMENT '修改人',
modify_at DATETIME NOT NULL COMMENT '修改时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '数据源';
/*------------------------------------------- create metric -------------------------------------------*/
DROP TABLE IF EXISTS metric;
CREATE TABLE IF NOT EXISTS metric
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
aggregation_type VARCHAR(100) COMMENT '数据源为http类型时无效。指标聚合类型. (count, spike, sum, avg)',
aggregation_field VARCHAR(100) COMMENT '聚合字段',
metric_type VARCHAR(100) NOT NULL COMMENT '指标类型(numeric:数值; ring_than: 环比; same_time: 同比; object: 对象)',
alarm_id BIGINT NOT NULL COMMENT '监控ID',
rule_id BIGINT NOT NULL COMMENT '规则ID',
data_source_id BIGINT NOT NULL DEFAULT 0 COMMENT '数据源id',
data_name_id BIGINT NOT NULL DEFAULT 0 COMMENT '数据名id',
data_name VARCHAR(200) NOT NULL COMMENT '监控数据名。(http:表示静态http数据; 其他data_name关联data_name表)',
query_string VARCHAR(1000) COMMENT '查询语句',
post_data VARCHAR(2000) COMMENT 'http数据监控,post数据内容',
properties VARCHAR(2000) COMMENT '附加属性JSON格式',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '监控指标配置';
ALTER TABLE metric
ADD INDEX idx_ruleid (rule_id);
ALTER TABLE metric
ADD INDEX idx_alarmid (alarm_id);
/*------------------------------------------- create recipient -------------------------------------------*/
DROP TABLE IF EXISTS recipient;
CREATE TABLE IF NOT EXISTS recipient
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
alarm_id BIGINT NOT NULL COMMENT '监控ID',
alert_id BIGINT NOT NULL COMMENT '报警ID',
account VARCHAR(50) NOT NULL COMMENT '接收人账号不带邮箱后缀',
create_at DATETIME NOT NULL COMMENT '创建时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '报警接收人';
ALTER TABLE recipient
ADD INDEX idx_alertid (alert_id);
ALTER TABLE recipient
ADD INDEX idx_alarmid (alarm_id);
/*------------------------------------------- create rule -------------------------------------------*/
DROP TABLE IF EXISTS rule;
CREATE TABLE IF NOT EXISTS rule
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
rule_type VARCHAR(100) NOT NULL COMMENT '规则类型(numeric,percentage,expression)',
alarm_id BIGINT NOT NULL COMMENT '报警ID',
alert_template VARCHAR(5000) NOT NULL COMMENT '报警内容模板',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '报警规则配置';
ALTER TABLE rule
ADD INDEX idx_alarmid (alarm_id);
/*------------------------------------------- create rule_property -------------------------------------------*/
DROP TABLE IF EXISTS rule_property;
CREATE TABLE IF NOT EXISTS rule_property
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
alarm_id BIGINT NOT NULL COMMENT '监控Id',
rule_id BIGINT NOT NULL COMMENT '报警规则ID',
prop_key VARCHAR(100) NOT NULL COMMENT '属性key',
prop_value VARCHAR(1000) NOT NULL COMMENT '属性value',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '报警规则属性';
ALTER TABLE rule_property
ADD INDEX idx_alarmid (alarm_id);
ALTER TABLE rule_property
ADD INDEX idx_ruleid (rule_id);
/*------------------------------------------- create department_info---------------------------------------------------------------------*/
DROP TABLE IF EXISTS department_info;
CREATE TABLE IF NOT EXISTS department_info
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
department_name VARCHAR(200) NOT NULL COMMENT '部门名称',
full_name VARCHAR(200) NOT NULL COMMENT '全称,一般是中文名字',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modify_at DATETIME NOT NULL COMMENT '修改时间',
modifier VARCHAR(200) NOT NULL COMMENT '最后修改人'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '部门信息';
CREATE UNIQUE INDEX uniq_departmentname ON department_info (department_name);
/*------------------------------------------- create team_info---------------------------------------------------------------------*/
DROP TABLE IF EXISTS team_info;
CREATE TABLE IF NOT EXISTS team_info
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
team_name VARCHAR(200) NOT NULL COMMENT '团队名称',
full_name VARCHAR(200) NOT NULL COMMENT '全称,一般是中文名字',
department_id BIGINT NOT NULL COMMENT '部门ID',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modify_at DATETIME NOT NULL COMMENT '修改时间',
modifier VARCHAR(200) NOT NULL COMMENT '最后修改人'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '团队信息';
ALTER TABLE team_info
ADD INDEX idx_teamname (team_name);
CREATE UNIQUE INDEX uniq_teamname ON team_info (team_name);
/*------------------------------------------- create user_info---------------------------------------------------------------------*/
DROP TABLE IF EXISTS user_info;
CREATE TABLE IF NOT EXISTS user_info
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键',
account VARCHAR(200) NOT NULL COMMENT '账号',
full_name VARCHAR(200) NOT NULL COMMENT '全称,一般是中文名字',
team_id BIGINT NOT NULL COMMENT '所属团队id',
mobile VARCHAR(20) COMMENT '号码',
email VARCHAR(50) COMMENT '邮箱',
wxid VARCHAR(50) COMMENT '企业微信id',
creator VARCHAR(200) NOT NULL COMMENT '创建人',
create_at DATETIME NOT NULL COMMENT '创建时间',
modify_at DATETIME NOT NULL COMMENT '修改时间',
modifier VARCHAR(200) NOT NULL COMMENT '最后修改人'
)
ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4
COMMENT = '用户信息';
ALTER TABLE user_info
ADD INDEX idx_account (account);
ALTER TABLE user_info
ADD INDEX idx_createat (create_at);
CREATE UNIQUE INDEX uniq_account ON user_info (account);
/*------------------------------------------- init data---------------------------------------------------------------------*/
INSERT INTO department_info(department_name, full_name, creator, create_at, modify_at, modifier) VALUES ('default', '默认部门', 'admin', now(), now(), 'admin');
INSERT INTO team_info(team_name, full_name, department_id, creator, create_at, modify_at, modifier) VALUES ('default', '炒鸡赛亚人', 1, 'admin', now(), now(), 'admin');
INSERT INTO user_info(account, full_name, team_id, mobile, email, wxid, creator, create_at, modify_at, modifier) VALUES ('admin', '管理员', 1, null, '[email protected]', 'wxid1', 'admin', now(), now(), 'admin');