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 @@
- 告警对象
+ 告警指标
所属监控
级别
告警内容
- 触发时间
- 持续时间
+ 告警时间
操作