From 141b9dfa7e3d4f0865295ca18885fb0dd038677f Mon Sep 17 00:00:00 2001 From: tomsun28 Date: Mon, 13 Dec 2021 15:22:16 +0800 Subject: [PATCH] =?UTF-8?q?[monitor]=20=E5=91=8A=E8=AD=A6=E7=BB=93?= =?UTF-8?q?=E6=9E=84duration=E6=8C=81=E7=BB=AD=E6=97=B6=E9=97=B4=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E4=B8=BAtimes=E8=A7=A6=E5=8F=91=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../usthe/alert/calculate/CalculateAlarm.java | 4 +- .../com/usthe/alert/pojo/entity/Alert.java | 42 ++++++++++--------- .../usthe/alert/pojo/entity/AlertDefine.java | 7 ++-- manager/src/main/resources/db/schema.sql | 23 +++++----- web-app/src/app/pojo/Alert.ts | 2 +- web-app/src/app/pojo/AlertDefine.ts | 2 +- .../alert-center/alert-center.component.html | 6 +-- .../alert-setting.component.html | 14 +++---- 8 files changed, 51 insertions(+), 49 deletions(-) diff --git a/alerter/src/main/java/com/usthe/alert/calculate/CalculateAlarm.java b/alerter/src/main/java/com/usthe/alert/calculate/CalculateAlarm.java index 75ac8f8..2e0e597 100644 --- a/alerter/src/main/java/com/usthe/alert/calculate/CalculateAlarm.java +++ b/alerter/src/main/java/com/usthe/alert/calculate/CalculateAlarm.java @@ -72,7 +72,7 @@ public class CalculateAlarm { .monitorId(monitorId) .priority((byte) 0) .status((byte) 0) - .duration(300); + .times(1); if (metricsData.getCode() == CollectRep.Code.UN_REACHABLE) { // UN_REACHABLE 对端不可达(网络层icmp) alertBuilder.target(CommonConstants.REACHABLE) @@ -139,7 +139,7 @@ public class CalculateAlarm { .priority(define.getPriority()) .status((byte) 0) .target(app + "." + metrics + "." + define.getField()) - .duration(define.getDuration()) + .times(1) // 模板中关键字匹配替换 .content(AlertTemplateUtil.render(define.getTemplate(), fieldValueMap)) .build(); diff --git a/alerter/src/main/java/com/usthe/alert/pojo/entity/Alert.java b/alerter/src/main/java/com/usthe/alert/pojo/entity/Alert.java index 77c8ca1..d556144 100644 --- a/alerter/src/main/java/com/usthe/alert/pojo/entity/Alert.java +++ b/alerter/src/main/java/com/usthe/alert/pojo/entity/Alert.java @@ -41,42 +41,44 @@ public class Alert { @ApiModelProperty(value = "告警记录实体主键索引ID", example = "87584674384", accessMode = READ_ONLY, position = 0) private Long id; - @ApiModelProperty(value = "告警监控对象ID", example = "87432674336", accessMode = READ_WRITE, position = 1) + @ApiModelProperty(value = "告警目标对象: 监控可用性-available 指标-app.metrics.field", + example = "1", accessMode = READ_WRITE, position = 1) + @Length(max = 255) + private String target; + + @ApiModelProperty(value = "告警对象关联的监控ID", example = "87432674336", accessMode = READ_WRITE, position = 2) private Long monitorId; - @ApiModelProperty(value = "告警监控对象名称", example = "87432674336", accessMode = READ_WRITE, position = 2) + @ApiModelProperty(value = "告警对象关联的监控名称", example = "Linux_192.132.23.1", + accessMode = READ_WRITE, position = 3) private String monitorName; + @ApiModelProperty(value = "告警关联的告警定义ID", example = "8743267443543", accessMode = READ_WRITE, position = 4) + private Long alertDefineId; + @ApiModelProperty(value = "告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色", - example = "1", accessMode = READ_WRITE, position = 3) + example = "1", accessMode = READ_WRITE, position = 5) @Min(0) @Max(2) private byte priority; + @ApiModelProperty(value = "告警通知实际内容", example = "linux_192.134.32.1: 534543534 cpu usage high", + accessMode = READ_WRITE, position = 6) + @Length(max = 1024) + private String content; + @ApiModelProperty(value = "告警状态: 0-待发送 1-已发送 2-已过期(已经超过持续时间)", - example = "1", accessMode = READ_WRITE, position = 4) + example = "1", accessMode = READ_WRITE, position = 7) @Min(0) @Max(2) private byte status; - @ApiModelProperty(value = "告警目标对象: 监控可用性-available 指标-app.metrics.field", - example = "1", accessMode = READ_WRITE, position = 4) - @Length(max = 255) - private String target; - - @ApiModelProperty(value = "触发告警后持续时间,单位s", example = "60", accessMode = READ_WRITE, position = 7) + @ApiModelProperty(value = "告警阈值触发次数", example = "3", accessMode = READ_WRITE, position = 8) @Min(0) - private int duration; + @Max(10) + private int times; - @ApiModelProperty(value = "告警通知实际内容", example = "linux_192.134.32.1: 534543534 cpu usage high", - accessMode = READ_WRITE, position = 10) - @Length(max = 1024) - private String content; - - /** - * 记录创建时间 - */ - @ApiModelProperty(value = "记录创建时间(毫秒时间戳)", example = "1612198922000", accessMode = READ_ONLY, position = 13) + @ApiModelProperty(value = "告警触发时间(毫秒时间戳)", example = "1612198922000", accessMode = READ_ONLY, position = 9) @Column(insertable = false, updatable = false) private LocalDateTime gmtCreate; diff --git a/alerter/src/main/java/com/usthe/alert/pojo/entity/AlertDefine.java b/alerter/src/main/java/com/usthe/alert/pojo/entity/AlertDefine.java index a441b87..76b05a1 100644 --- a/alerter/src/main/java/com/usthe/alert/pojo/entity/AlertDefine.java +++ b/alerter/src/main/java/com/usthe/alert/pojo/entity/AlertDefine.java @@ -57,7 +57,7 @@ public class AlertDefine { @NotNull private String field; - @ApiModelProperty(value = "是否是默认预置告警", example = "false", accessMode = READ_WRITE, position = 4) + @ApiModelProperty(value = "是否是全局默认告警", example = "false", accessMode = READ_WRITE, position = 4) private boolean preset; @ApiModelProperty(value = "告警阈值触发条件表达式", example = "usage>90", accessMode = READ_WRITE, position = 5) @@ -70,9 +70,10 @@ public class AlertDefine { @Max(2) private byte priority; - @ApiModelProperty(value = "触发告警后持续时间,单位s", example = "60", accessMode = READ_WRITE, position = 7) + @ApiModelProperty(value = "阈值触发次数,即达到次数要求后才触发告警", example = "3", accessMode = READ_WRITE, position = 7) @Min(0) - private int duration; + @Max(10) + private int times; @ApiModelProperty(value = "告警阈值开关", example = "true", accessMode = READ_WRITE, position = 8) private boolean enable = true; diff --git a/manager/src/main/resources/db/schema.sql b/manager/src/main/resources/db/schema.sql index 2399460..d044fe3 100644 --- a/manager/src/main/resources/db/schema.sql +++ b/manager/src/main/resources/db/schema.sql @@ -74,10 +74,10 @@ CREATE TABLE alert_define app varchar(100) not null comment '配置告警的监控类型:linux,mysql,jvm...', metric varchar(100) not null comment '配置告警的指标集合:cpu,memory,info...', field varchar(100) not null comment '配置告警的指标:usage,cores...', - preset boolean not null default false comment '是否是默认预置告警,是则新增监控默认关联此告警', + preset boolean not null default false comment '是否是全局默认告警,是则所有此类型监控默认关联此告警', expr varchar(255) not null comment '告警触发条件表达式', priority tinyint not null default 0 comment '告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色', - duration int not null comment '触发告警后持续时间,单位s', + times int not null default 1 comment '触发次数,即达到触发阈值次数要求后才算触发告警', enable boolean not null default true comment '告警阈值开关', template varchar(255) not null comment '告警通知模板内容', creator varchar(100) comment '创建者', @@ -109,15 +109,16 @@ CREATE TABLE alert_define_monitor_bind DROP TABLE IF EXISTS alert ; CREATE TABLE alert ( - id bigint not null auto_increment comment '告警ID', - monitor_id bigint not null comment '告警监控对象ID', - monitor_name varchar(100) comment '告警监控对象名称', - priority tinyint not null default 0 comment '告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色', - status tinyint not null default 0 comment '告警状态: 0-待发送 1-已发送 2-已过期(已经超过持续时间)', - target varchar(255) not null comment '告警目标对象: 监控可用性-available 指标-app.metrics.field', - duration int not null comment '触发告警后持续时间,单位s', - content varchar(255) not null comment '告警通知实际内容', - gmt_create timestamp default current_timestamp comment 'create time', + id bigint not null auto_increment comment '告警ID', + target varchar(255) not null comment '告警目标对象: 监控可用性-available 指标-app.metrics.field', + monitor_id bigint not null comment '告警对象关联的监控ID', + monitor_name varchar(100) comment '告警对象关联的监控名称', + alert_define_id bigint not null comment '告警关联的告警定义ID', + priority tinyint not null default 0 comment '告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色', + content varchar(255) not null comment '告警通知实际内容', + status tinyint not null default 0 comment '告警状态: 0-待发送 1-已发送 2-已过期(已经超过持续时间)', + times int not null comment '触发次数,即达到告警定义的触发阈值次数要求后才会发告警', + gmt_create timestamp default current_timestamp comment 'create time', primary key (id) ) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4; diff --git a/web-app/src/app/pojo/Alert.ts b/web-app/src/app/pojo/Alert.ts index 2ea34ca..a84dc7f 100644 --- a/web-app/src/app/pojo/Alert.ts +++ b/web-app/src/app/pojo/Alert.ts @@ -6,6 +6,6 @@ export class Alert { priority: number = 2; status!: number; content!: string; - duration!: number; + times!: number; gmtCreate!: number; } diff --git a/web-app/src/app/pojo/AlertDefine.ts b/web-app/src/app/pojo/AlertDefine.ts index 1e8d0f1..c4d1c11 100644 --- a/web-app/src/app/pojo/AlertDefine.ts +++ b/web-app/src/app/pojo/AlertDefine.ts @@ -7,7 +7,7 @@ export class AlertDefine { expr!: string; // 告警级别 0:高-emergency-紧急告警-红色 1:中-critical-严重告警-橙色 2:低-warning-警告告警-黄色 priority: number = 2; - duration: number = 600; + times: number = 3; enable: boolean = true; template!: string; creator!: string; diff --git a/web-app/src/app/routes/alert/alert-center/alert-center.component.html b/web-app/src/app/routes/alert/alert-center/alert-center.component.html index 153fc8b..d103cb3 100644 --- a/web-app/src/app/routes/alert/alert-center/alert-center.component.html +++ b/web-app/src/app/routes/alert/alert-center/alert-center.component.html @@ -34,12 +34,11 @@ - 告警对象 + 告警指标 所属监控 级别 告警内容 - 触发时间 - 持续时间 + 告警时间 操作 @@ -68,7 +67,6 @@ {{ data.content }} {{ data.gmtCreate }} - {{ data.duration }}