package org.yxt.monitor.config;
import de.codecentric.boot.admin.server.domain.entities.Instance;
import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
import de.codecentric.boot.admin.server.domain.events.InstanceEvent;
import de.codecentric.boot.admin.server.notify.AbstractStatusChangeNotifier;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
/**
* 自定义配置监控预警消息推送
*
* @author Yang douya
* @date 2023/6/29 14:36
*/
@Slf4j
@Component
public class WarnNotifier extends AbstractStatusChangeNotifier {
public WarnNotifier(InstanceRepository repository) {
super(repository);
}
@Override
protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
// 服务名
String serviceName = instance.getRegistration().getName();
// 服务url
String serviceUrl = instance.getRegistration().getServiceUrl();
// 服务状态
String status = instance.getStatusInfo().getStatus();
// 详情
Map<String, Object> details = instance.getStatusInfo().getDetails();
// 当前服务掉线时间
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = simpleDateFormat.format(date);
// 拼接短信内容
StringBuilder str = new StringBuilder();
str.append("服务名:【" + serviceName + "】 \r\n");
str.append("服务状态:【" + status + "】 \r\n");
str.append("地址:【" + serviceUrl + "】\r\n");
str.append("时间:" + format + "\r\n");
/**
switch (status) {
case "DOWN":
System.out.println("健康检查没通过!");
break;
case "OFFLINE":
System.out.println("服务离线!");
break;
case "UP":
System.out.println("服务上线!");
break;
case "UNKNOWN":
System.out.println("服务未知异常!");
break;
default:
System.out.println(status);
break;
}
**/
return Mono.fromRunnable(() -> {
// 这里写你服务发生改变时,要提醒的方法
// 如服务掉线了,就发送短信告知
log.info("应用状态变化消息通知 {}", str.toString());
});
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
application-monitor.zip (15个子文件)
application-monitor
pom.xml 7KB
src
test
java
main
resources
application-dev.yml 2KB
log4j2-dev.xml 6KB
application.yml 94B
java
org
yxt
monitor
BootMonitorApplication.java 520B
config
HttpHeadersProviderConfig.java 1017B
BootAdminMonitorSecurityConfig.java 2KB
WarnNotifier.java 3KB
.idea
jarRepositories.xml 864B
vcs.xml 185B
workspace.xml 14KB
misc.xml 539B
compiler.xml 799B
.gitignore 184B
encodings.xml 191B
共 15 条
- 1
资源评论
杨豆芽
- 粉丝: 22
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功