diff --git a/alerter/src/main/java/com/usthe/alert/AlerterProperties.java b/alerter/src/main/java/com/usthe/alert/AlerterProperties.java
index 216eb1c..e0572c8 100644
--- a/alerter/src/main/java/com/usthe/alert/AlerterProperties.java
+++ b/alerter/src/main/java/com/usthe/alert/AlerterProperties.java
@@ -1,10 +1,12 @@
package com.usthe.alert;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 数据仓储配置属性
+ *
* @author tom
* @date 2021/11/24 10:38
*/
@@ -12,11 +14,22 @@ import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "alerter")
public class AlerterProperties {
+ private String consoleUrl = "https://console.tancloud.cn";
+
+ public String getConsoleUrl() {
+ return consoleUrl;
+ }
+
+ public void setConsoleUrl(String url) {
+ this.consoleUrl = url;
+ }
+
/**
* 数据入口配置属性
*/
private EntranceProperties entrance;
+
public EntranceProperties getEntrance() {
return entrance;
}
@@ -25,6 +38,7 @@ public class AlerterProperties {
this.entrance = entrance;
}
+
/**
* 数据入口配置属性
* 入口可以是从kafka rabbitmq rocketmq等消息中间件获取数据
@@ -98,4 +112,5 @@ public class AlerterProperties {
}
+
}
diff --git a/home/docs/help/alert_console.md b/home/docs/help/alert_console.md
new file mode 100644
index 0000000..68cf733
--- /dev/null
+++ b/home/docs/help/alert_console.md
@@ -0,0 +1,18 @@
+---
+id: alert_console
+title: 告警模板中自定义的控制台地址
+sidebar_label: 告警模板登录台地址
+---
+
+> 阈值触发后发送告警信息,通过钉钉/企业微信/飞书机器人通知或者使用邮箱通知的时候,告警内容中有登录控制台的详情链接
+
+
+### 自定义设置
+
+在我们的启动配置文件application.yml中,找到下面的配置
+```yml
+alerter:
+ console-url: #这里就是我们的自定义控制台地址
+```
+
+默认值是赫兹跳动的官方控制台地址
\ No newline at end of file
diff --git a/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java b/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java
index ca01fe0..80e7579 100644
--- a/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java
+++ b/manager/src/main/java/com/usthe/manager/component/alerter/DispatchAlarm.java
@@ -1,6 +1,7 @@
package com.usthe.manager.component.alerter;
import com.usthe.alert.AlerterDataQueue;
+import com.usthe.alert.AlerterProperties;
import com.usthe.alert.AlerterWorkerPool;
import com.usthe.common.util.CommonUtil;
import com.usthe.common.entity.alerter.Alert;
@@ -24,6 +25,7 @@ import org.springframework.stereotype.Component;
import org.springframework.web.client.ResourceAccessException;
import org.springframework.web.client.RestTemplate;
+import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import java.util.ArrayList;
import java.util.Date;
@@ -48,6 +50,8 @@ public class DispatchAlarm {
private JavaMailSender javaMailSender;
private RestTemplate restTemplate;
private MailService mailService;
+ @Resource
+ private AlerterProperties alerterProperties;
@Value("${spring.mail.username}")
private String emailFromUser;
@@ -177,13 +181,13 @@ public class DispatchAlarm {
"\n所属监控ID :" + alert.getMonitorId() +
"\n所属监控名称 :" + alert.getMonitorName() +
"\n告警级别 :" + CommonUtil.transferAlertPriority(alert.getPriority()) +
- "\n内容详情 : " + alert.getContent();
+ "\n内容详情 : " + alert.getContent() + "\n";
flyBookContent.setText(text);
contents1.add(flyBookContent);
FlyBookWebHookDto.FlyBookContent bookContent = new FlyBookWebHookDto.FlyBookContent();
bookContent.setTag("a");
bookContent.setText("登入控制台");
- bookContent.setHref("https://www.tancloud.cn");
+ bookContent.setHref(alerterProperties.getConsoleUrl());
contents1.add(bookContent);
contents.add(contents1);
zhCn.setTitle("[TanCloud探云告警通知]");
@@ -214,14 +218,16 @@ public class DispatchAlarm {
private void sendDingTalkRobotAlert(NoticeReceiver receiver, Alert alert) {
DingTalkWebHookDto dingTalkWebHookDto = new DingTalkWebHookDto();
DingTalkWebHookDto.MarkdownDTO markdownDTO = new DingTalkWebHookDto.MarkdownDTO();
- String content = "#### [TanCloud探云告警通知]\n##### **告警目标对象** : " +
+ StringBuilder content = new StringBuilder();
+ content.append("#### [TanCloud探云告警通知]\n##### **告警目标对象** : " +
alert.getTarget() + "\n " +
"##### **所属监控ID** : " + alert.getMonitorId() + "\n " +
"##### **所属监控名称** : " + alert.getMonitorName() + "\n " +
"##### **告警级别** : " +
CommonUtil.transferAlertPriority(alert.getPriority()) + "\n " +
- "##### **内容详情** : " + alert.getContent();
- markdownDTO.setText(content);
+ "##### **内容详情** : " + alert.getContent());
+ content.append("[点击跳转查看详情](" + alerterProperties.getConsoleUrl() + ")");
+ markdownDTO.setText(content.toString());
markdownDTO.setTitle("TanCloud探云告警通知");
dingTalkWebHookDto.setMarkdown(markdownDTO);
String webHookUrl = DingTalkWebHookDto.WEBHOOK_URL + receiver.getAccessToken();
@@ -261,8 +267,10 @@ public class DispatchAlarm {
content.append("告警级别 : ")
.append(CommonUtil.transferAlertPriority(alert.getPriority())).append("\n");
}
- content.append("内容详情 : ").append(alert.getContent());
+ content.append("内容详情 : ").append(alert.getContent() + "\n");
+ content.append("[点击跳转查看详情](" + alerterProperties.getConsoleUrl() + ")");
markdownDTO.setContent(content.toString());
+ //TODO 增加控制台地址登录可控制
weWorkWebHookDTO.setMarkdown(markdownDTO);
String webHookUrl = WeWorkWebHookDto.WEBHOOK_URL + receiver.getWechatId();
try {
diff --git a/manager/src/main/java/com/usthe/manager/service/impl/MailServiceImpl.java b/manager/src/main/java/com/usthe/manager/service/impl/MailServiceImpl.java
index 640c491..e39aae8 100644
--- a/manager/src/main/java/com/usthe/manager/service/impl/MailServiceImpl.java
+++ b/manager/src/main/java/com/usthe/manager/service/impl/MailServiceImpl.java
@@ -1,5 +1,6 @@
package com.usthe.manager.service.impl;
+import com.usthe.alert.AlerterProperties;
import com.usthe.common.entity.alerter.Alert;
import com.usthe.common.util.CommonUtil;
import com.usthe.manager.service.MailService;
@@ -11,6 +12,7 @@ import org.thymeleaf.context.Context;
import javax.annotation.Resource;
/**
+ * Mailbox sending service interface implementation class
* 邮箱发送服务接口实现类
*
* @author 花城
@@ -23,16 +25,20 @@ public class MailServiceImpl implements MailService {
@Resource
private TemplateEngine templateEngine;
+ @Resource
+ private AlerterProperties alerterProperties;
@Override
public String buildAlertHtmlTemplate(final Alert alert) {
+ // Introduce thymeleaf context parameters to render pages
// 引入thymeleaf上下文参数渲染页面
Context context = new Context();
- context.setVariable("target",alert.getTarget());
- context.setVariable("monitorId",alert.getMonitorId());
- context.setVariable("monitorName",alert.getMonitorName());
+ context.setVariable("target", alert.getTarget());
+ context.setVariable("monitorId", alert.getMonitorId());
+ context.setVariable("monitorName", alert.getMonitorName());
context.setVariable("priority", CommonUtil.transferAlertPriority(alert.getPriority()));
- context.setVariable("content",alert.getContent());
+ context.setVariable("content", alert.getContent());
+ context.setVariable("consoleUrl", alerterProperties.getConsoleUrl());
return templateEngine.process("mailAlarm", context);
}
}
diff --git a/manager/src/main/resources/application.yml b/manager/src/main/resources/application.yml
index 1570fae..664daf9 100644
--- a/manager/src/main/resources/application.yml
+++ b/manager/src/main/resources/application.yml
@@ -68,4 +68,9 @@ warehouse:
driver-class-name: com.taosdata.jdbc.rs.RestfulDriver
url: jdbc:TAOS-RS://localhost:6041/hertzbeat
username: root
- password: taosdata
\ No newline at end of file
+ password: taosdata
+
+#自定义告警控制台地址
+alerter:
+ #这里就是我们的自定义控制台地址
+ console-url: https://console.tancloud.cn
diff --git a/manager/src/main/resources/templates/mailAlarm.html b/manager/src/main/resources/templates/mailAlarm.html
index fa994c3..6f847b4 100644
--- a/manager/src/main/resources/templates/mailAlarm.html
+++ b/manager/src/main/resources/templates/mailAlarm.html
@@ -700,7 +700,7 @@
登入控制台