summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortanghao <admin@LAPTOP-QCSKVLI9>2020-11-17 15:28:47 +0600
committertanghao <admin@LAPTOP-QCSKVLI9>2020-11-17 15:28:47 +0600
commit1281d53e49a3026ac6feb233d581003b60f0ff88 (patch)
treece703ff26788b950bb74860658157eb34fcc18d9
parentd9818457843b1b41ec81b770cd7e2fd67c24d6e6 (diff)
feat: global新增推送endpoint state状态告警规则
-rw-r--r--src/main/java/com/nis/job/ConfagentJob.java19
-rw-r--r--src/main/java/com/nis/util/Constant.java10
-rw-r--r--src/main/resources/mapper/EndpointDao.xml1
3 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/com/nis/job/ConfagentJob.java b/src/main/java/com/nis/job/ConfagentJob.java
index 5011794..6075122 100644
--- a/src/main/java/com/nis/job/ConfagentJob.java
+++ b/src/main/java/com/nis/job/ConfagentJob.java
@@ -2,6 +2,7 @@ package com.nis.job;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.nis.entity.*;
import com.nis.service.*;
import com.nis.util.CommonUtils;
@@ -662,6 +663,24 @@ public class ConfagentJob extends QuartzJobBean {
group.put("name", "alertRule");
group.put("rules", rules);
+ //获取配置文件判断是否需要添加endpoint state告警
+ String endpointAlertPush = sysConfigService.queryValueByParamkey(Constant.ENDPOINT_ALERT_PUSH);
+ if(ObjectUtils.isNotEmpty(endpointAlertPush)&&endpointAlertPush.equals("1")) {
+ String endpointAlert = sysConfigService.queryValueByParamkey(Constant.ENDPOINT_ALERT_RULE);
+ Map endpointAlertMap = (Map) JSON.parse(endpointAlert);
+ String alertName = (String) endpointAlertMap.get("alertName");
+ String forTime = (String) endpointAlertMap.get("for");
+ String expr = (String) endpointAlertMap.get("expr");
+ Map rule =new HashMap();
+ Map annotations = new HashMap();
+ annotations.put("summary", "{{$value}}");
+ rule.put("alert", alertName);
+ rule.put("expr", expr);
+ rule.put("for", forTime);
+ rule.put("annotations", annotations);
+ rules.add(rule);
+ }
+
for(AlertRule alertRule : alertRules) {
Map labels = new HashMap();
labels.put("severity", alertRule.getSeverity());
diff --git a/src/main/java/com/nis/util/Constant.java b/src/main/java/com/nis/util/Constant.java
index 505782d..f86f93c 100644
--- a/src/main/java/com/nis/util/Constant.java
+++ b/src/main/java/com/nis/util/Constant.java
@@ -68,6 +68,16 @@ public class Constant {
public static final String STORAGE_LOCAL_RETENTION="storage_local_retention";
/**
+ * endpoint state 告警规则
+ */
+ public static final String ENDPOINT_ALERT_RULE="endpoint_alert_rule";
+
+ /**
+ * endpoint state 告警是否开启 0不开启 1开启
+ */
+ public static final String ENDPOINT_ALERT_PUSH="endpoint_alert_push";
+
+ /**
* 当前数据库类型
*/
public static final String DB_TYPE;
diff --git a/src/main/resources/mapper/EndpointDao.xml b/src/main/resources/mapper/EndpointDao.xml
index d6616c9..414475a 100644
--- a/src/main/resources/mapper/EndpointDao.xml
+++ b/src/main/resources/mapper/EndpointDao.xml
@@ -102,6 +102,7 @@
left join idc i on a.idc_id=i.id
left join project p on m.project_id =p.id
where a.idc_id=#{idcId}
+ order by e.id asc
</select>
<select id="selectEndpointMetrics" resultType="com.nis.entity.MetricsDto">