提交 adabfc53 authored 作者: 杨凯's avatar 杨凯

feat:新增告警接收接口

上级 9093a9fd
...@@ -4,6 +4,9 @@ import lombok.Data; ...@@ -4,6 +4,9 @@ import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/** /**
* ProjProperties * ProjProperties
...@@ -17,8 +20,6 @@ import org.springframework.stereotype.Component; ...@@ -17,8 +20,6 @@ import org.springframework.stereotype.Component;
@ConfigurationProperties(prefix = "projprops") @ConfigurationProperties(prefix = "projprops")
public class ProjProperties { public class ProjProperties {
private String cloudBaseService; private List<ServiceInfo> serviceInfo;
private String cloudBaseNotifyName;
} }
package com.ebaiyihui.alarm.server.config;
import lombok.Data;
/**
* @description:
* @author: yk
* @create: 2023/08/10 14:39
**/
@Data
public class ServiceInfo {
private String serviceNames;
private String serviceNotifyName;
}
package com.ebaiyihui.alarm.server.service.Impl; package com.ebaiyihui.alarm.server.service.Impl;
import com.ebaiyihui.alarm.server.config.ProjProperties; import com.ebaiyihui.alarm.server.config.ProjProperties;
import com.ebaiyihui.alarm.server.config.ServiceInfo;
import com.ebaiyihui.alarm.server.entity.AlarmMessage; import com.ebaiyihui.alarm.server.entity.AlarmMessage;
import com.ebaiyihui.alarm.server.service.AlarmService; import com.ebaiyihui.alarm.server.service.AlarmService;
import com.ebaiyihui.alarm.server.util.HttpKit; import com.ebaiyihui.alarm.server.util.HttpKit;
...@@ -42,19 +43,23 @@ public class AlarmServiceImpl implements AlarmService { ...@@ -42,19 +43,23 @@ public class AlarmServiceImpl implements AlarmService {
String message = alarmMessage.getAlarmMessage(); String message = alarmMessage.getAlarmMessage();
// 获取服务名称 // 获取服务名称
String serviceNme = name.substring(name.indexOf("byh"), name.length()); String serviceNme = name.substring(name.indexOf("byh"), name.length());
// 云端通知人员 List<ServiceInfo> serviceInfos = projProperties.getServiceInfo();
if (projProperties.getCloudBaseService().contains(serviceNme)) { for (ServiceInfo serviceInfo : serviceInfos) {
// message += "<at user_id=\\\"ou_6cb2f35f9bf8e7d7e977483801ab13de\\\">杨凯</at>"; // 相应的服务通知对应人员
message += "<at user_id=\\\"" + projProperties.getCloudBaseNotifyName() + "\\\"></at>"; if (serviceInfo.getServiceNames().contains(serviceNme)) {
alarmMessage.setAlarmMessage(message); // message += "<at user_id=\\\"ou_6cb2f35f9bf8e7d7e977483801ab13de\\\">杨凯</at>";
} message += "<at user_id=\\\"" + serviceInfo.getServiceNotifyName() + "\\\"></at>";
String sendMessage = "{\"msg_type\":\"text\",\"content\":{\"text\":\"Apache SkyWalking Alarm: \\n %s.\"}}"; alarmMessage.setAlarmMessage(message);
String requestBody = getRequestBody(sendMessage, alarmMessage); }
try { String sendMessage = "{\"msg_type\":\"text\",\"content\":{\"text\":\"Apache SkyWalking Alarm: \\n %s.\"}}";
HttpKit.jsonPost(webHookUrl, requestBody); String requestBody = getRequestBody(sendMessage, alarmMessage);
} catch (Exception e) { try {
return "fail"; HttpKit.jsonPost(webHookUrl, requestBody);
} catch (Exception e) {
return "fail";
}
} }
} }
return "success"; return "success";
} }
......
...@@ -81,5 +81,6 @@ secret: OV5mmyDxX5Nx0caMYQp3Kg ...@@ -81,5 +81,6 @@ secret: OV5mmyDxX5Nx0caMYQp3Kg
# ou_534ec59ce6a625046da2b51896ec2764 赵凯 # ou_534ec59ce6a625046da2b51896ec2764 赵凯
projprops: projprops:
cloud_base_service: byh-doctor-service-basedata01_cloud-pro,byh-doctor-service-basedata02_cloud-pro,byh-doctoruser-service-core01_cloud-pro,byh-doctoruser-service-core02_cloud-pro,byh-sysinfocloud-service_cloud-pro,byh-ehospital-im01_cloud-pro,byh-ehospital-im02_cloud-pro serviceInfo[0]:
cloud_base_notify_name: ou_6cb2f35f9bf8e7d7e977483801ab13de service_names: byh-doctor-service-basedata01_cloud-pro,byh-doctor-service-basedata02_cloud-pro,byh-doctoruser-service-core01_cloud-pro,byh-doctoruser-service-core02_cloud-pro,byh-sysinfocloud-service_cloud-pro,byh-ehospital-im01_cloud-pro,byh-ehospital-im02_cloud-pro
\ No newline at end of file service_notify_name: ou_6cb2f35f9bf8e7d7e977483801ab13de
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论