59 lines
3.5 KiB
MySQL
59 lines
3.5 KiB
MySQL
|
|
-- V23:系统监控,独立新表,不修改业务及审计数据。
|
|||
|
|
|
|||
|
|
INSERT INTO permissions (perm_code,perm_name,perm_type,sort_order,status) VALUES ('system:monitor:view','系统监控:查看',1,100,1);
|
|||
|
|
INSERT INTO role_permissions (role_id,permission_id) SELECT r.id,p.id FROM roles r JOIN permissions p ON p.perm_code='system:monitor:view' WHERE r.role_code='admin';
|
|||
|
|
|
|||
|
|
CREATE TABLE monitor_snapshots (
|
|||
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
|
|||
|
|
instance_id VARCHAR(32) NOT NULL COMMENT '应用实例标识',
|
|||
|
|
minute DATETIME NOT NULL COMMENT '采集分钟,北京时间',
|
|||
|
|
sample_count INTEGER NOT NULL COMMENT '实际采样次数',
|
|||
|
|
resources JSON NOT NULL COMMENT '资源均值与采集范围,不含配置',
|
|||
|
|
requests JSON NOT NULL COMMENT '请求汇总与固定耗时直方图',
|
|||
|
|
CONSTRAINT pk_monitor_snapshots PRIMARY KEY (id),
|
|||
|
|
CONSTRAINT uk_monitor_snapshots_instance_minute UNIQUE (instance_id, minute)
|
|||
|
|
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='分钟级运行监控快照' COLLATE utf8mb4_general_ci;
|
|||
|
|
|
|||
|
|
CREATE INDEX idx_monitor_snapshots_minute ON monitor_snapshots (minute);
|
|||
|
|
|
|||
|
|
CREATE TABLE monitor_request_minutes (
|
|||
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
|
|||
|
|
instance_id VARCHAR(32) NOT NULL COMMENT '应用实例标识',
|
|||
|
|
minute DATETIME NOT NULL COMMENT '请求分钟,北京时间',
|
|||
|
|
method VARCHAR(8) NOT NULL COMMENT 'HTTP方法,固定集合',
|
|||
|
|
route VARCHAR(256) NOT NULL COMMENT '路由模板,不含原始地址及参数',
|
|||
|
|
metrics JSON NOT NULL COMMENT '请求数、状态分类与固定直方图',
|
|||
|
|
CONSTRAINT pk_monitor_request_minutes PRIMARY KEY (id),
|
|||
|
|
CONSTRAINT uk_monitor_request_minutes_endpoint UNIQUE (instance_id, minute, method, route)
|
|||
|
|
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='接口分钟级运行统计' COLLATE utf8mb4_general_ci;
|
|||
|
|
|
|||
|
|
CREATE INDEX idx_monitor_request_minutes_minute ON monitor_request_minutes (minute);
|
|||
|
|
|
|||
|
|
CREATE TABLE monitor_events (
|
|||
|
|
id BIGINT UNSIGNED NOT NULL COMMENT '主键ID' AUTO_INCREMENT,
|
|||
|
|
instance_id VARCHAR(32) NOT NULL COMMENT '应用实例标识',
|
|||
|
|
kind VARCHAR(24) NOT NULL COMMENT '事件类型,固定集合',
|
|||
|
|
code VARCHAR(64) NOT NULL COMMENT '稳定错误码',
|
|||
|
|
component VARCHAR(128) NOT NULL COMMENT '所属组件或日志模块',
|
|||
|
|
level VARCHAR(16) NOT NULL COMMENT '异常级别',
|
|||
|
|
message VARCHAR(256) NOT NULL COMMENT '通用说明,不保存内部异常文本',
|
|||
|
|
fingerprint VARCHAR(64) COMMENT '同类健康异常合并键',
|
|||
|
|
request_id VARCHAR(32) COMMENT '请求关联编号',
|
|||
|
|
method VARCHAR(8) COMMENT 'HTTP方法',
|
|||
|
|
route VARCHAR(256) COMMENT '路由模板',
|
|||
|
|
status_code INTEGER COMMENT 'HTTP状态码',
|
|||
|
|
duration_ms FLOAT COMMENT '请求耗时,毫秒',
|
|||
|
|
batch_no VARCHAR(32) COMMENT '相关同步批次编号',
|
|||
|
|
first_seen DATETIME NOT NULL COMMENT '首次发生时间',
|
|||
|
|
last_seen DATETIME NOT NULL COMMENT '最近发生时间',
|
|||
|
|
occurrences INTEGER NOT NULL COMMENT '发生或持续采样次数',
|
|||
|
|
resolved_at DATETIME COMMENT '恢复时间,仅用于健康异常',
|
|||
|
|
CONSTRAINT pk_monitor_events PRIMARY KEY (id)
|
|||
|
|
)ENGINE=InnoDB CHARSET=utf8mb4 COMMENT='脱敏诊断事件与异常恢复记录' COLLATE utf8mb4_general_ci;
|
|||
|
|
|
|||
|
|
CREATE INDEX idx_monitor_events_fingerprint ON monitor_events (fingerprint, resolved_at);
|
|||
|
|
|
|||
|
|
CREATE INDEX idx_monitor_events_last_seen ON monitor_events (last_seen);
|
|||
|
|
|
|||
|
|
CREATE INDEX idx_monitor_events_request_id ON monitor_events (request_id);
|