summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortanghao <default@DESKTOP-7FEGRP2>2020-04-23 16:13:37 +0800
committertanghao <default@DESKTOP-7FEGRP2>2020-04-23 16:13:37 +0800
commit83f78aaef5716a69fc12d2bca9fc5866afcedf6e (patch)
tree04da6dadd47a7a78eccadec46aa2977282a2c8e6
parent2b4e425cc20c176d89d584bfd5f632cb9ef75074 (diff)
feat: 告警相关功能新增修改
1.去除告警label中type、linkid 2.告警新增标签过滤instance信息 3.datacenter角色去除rule相关配置项 防止datecenter产生告警信息
-rw-r--r--src/main/java/com/nis/job/ConfagentJob.java18
-rw-r--r--src/main/java/com/nis/util/YamlUtil.java11
2 files changed, 25 insertions, 4 deletions
diff --git a/src/main/java/com/nis/job/ConfagentJob.java b/src/main/java/com/nis/job/ConfagentJob.java
index 7f1af79..63633df 100644
--- a/src/main/java/com/nis/job/ConfagentJob.java
+++ b/src/main/java/com/nis/job/ConfagentJob.java
@@ -121,7 +121,7 @@ public class ConfagentJob extends QuartzJobBean {
if(result!=null) {
try {
//获取yml文件信息替换对应内容 热加载
- boolean handleResult = YamlUtil.subYmlHandle(result,ymlPath);
+ boolean handleResult = YamlUtil.subYmlHandle(result,ymlPath,ruleYmlPath);
logger.info("yamlHanlde sub result {}",JSON.toJSON(handleResult));
} catch (Exception e) {
logger.error("yamlHanlde sub error",e);
@@ -487,8 +487,8 @@ public class ConfagentJob extends QuartzJobBean {
for(AlertRule alertRule : alertRules) {
Map labels = new HashMap();
labels.put("severity", alertRule.getSeverity());
- labels.put("type", alertRule.getType());
- labels.put("linkId", alertRule.getLinkId());
+// labels.put("type", alertRule.getType());
+// labels.put("linkId", alertRule.getLinkId());
Map annotations = new HashMap();
annotations.put("summary", alertRule.getSummary());
annotations.put("description", alertRule.getDescription());
@@ -527,6 +527,18 @@ public class ConfagentJob extends QuartzJobBean {
staticConfigs.put("path_prefix","/");
}
alertManager.put("alertmanagers",staticConfigList);
+
+ // 配置alert_relabel_configs
+ List alertRelabel =new ArrayList();
+
+ // 过滤告警信息中instance标签
+ Map alertRelabelMap =new HashMap();
+ alertRelabelMap.put("regex", "instance");
+ alertRelabelMap.put("action", "labeldrop");
+ alertRelabel.add(alertRelabelMap);
+
+ alertManager.put("alert_relabel_configs", alertRelabel);
+
staticConfigs.put("static_configs", staticConfig);
staticConfig.add(targets);
targets.put("targets", alertData);
diff --git a/src/main/java/com/nis/util/YamlUtil.java b/src/main/java/com/nis/util/YamlUtil.java
index 695c489..4e80929 100644
--- a/src/main/java/com/nis/util/YamlUtil.java
+++ b/src/main/java/com/nis/util/YamlUtil.java
@@ -11,6 +11,7 @@ import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.RandomAccessFile;
+import java.io.StringReader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -89,7 +90,7 @@ public class YamlUtil {
* @return
*/
@SuppressWarnings("unchecked")
- public static boolean subYmlHandle(List<Object> param,String ymlPath) {
+ public static boolean subYmlHandle(List<Object> param,String ymlPath,String ruleYmlPath) {
boolean flag=false;
if(param!=null && ymlPath != null && ymlPath.length() != 0) {
FileInputStream fileInputStream =null;
@@ -102,10 +103,18 @@ public class YamlUtil {
if(map==null) {
map=new HashMap();
}
+ //修改 rule.yml配置文件
+ File ruleYmlfile = new File(ruleYmlPath);
+ if(ruleYmlfile.exists()){
+ // 文件存在则删除文件信息
+ ruleYmlfile.delete();
+ }
+ map.remove("rule_files");
map.put("scrape_configs", param);
out=new FileOutputStream(file);
osw=new OutputStreamWriter(out, "UTF-8");
y.dump(map,osw);
+
// RuntimeUtil.run(null, null, new String[]{"kill","-hup","`ps -ef |grep prometheus|grep -v grep|awk \'{print $2}\'`"});
RuntimeUtil.run(null, null, new String[]{"/bin/sh", "-c","ps -ef |grep prometheus|grep -v grep|awk \'{print $2}\'|xargs kill -hup"});
flag = true;