From 52b0fa9a5482a2278b0c683dab7d130a9e7d8b87 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Thu, 25 Jul 2024 10:00:10 +0800 Subject: [PATCH 1/3] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96Monitor=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E6=9C=8D=E5=8A=A1=E9=80=9A=E7=9F=A5=E5=88=86=E7=B1=BB?= =?UTF-8?q?=EF=BC=88=E5=8F=AF=E6=89=A9=E5=B1=95=E9=82=AE=E7=AE=B1=E5=8F=91?= =?UTF-8?q?=E9=80=81=EF=BC=8C=E7=9F=AD=E4=BF=A1=E5=8F=91=E9=80=81=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/notifier/CustomNotifier.java | 50 +++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java index 477a5988d..0094f72fa 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java @@ -9,6 +9,8 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; +import static de.codecentric.boot.admin.server.domain.values.StatusInfo.*; + /** * 自定义事件通知处理 * @@ -28,13 +30,55 @@ public class CustomNotifier extends AbstractEventNotifier { return Mono.fromRunnable(() -> { // 实例状态改变事件 if (event instanceof InstanceStatusChangedEvent) { + // 获取实例注册名称 String registName = instance.getRegistration().getName(); + // 获取实例ID String instanceId = event.getInstance().getValue(); + // 获取实例状态 String status = ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus(); - log.info("Instance Status Change: [{}],[{}],[{}]", registName, instanceId, status); - } + // 获取服务URL + String serviceUrl = instance.getRegistration().getServiceUrl(); + String statusName = null; + // 根据实例状态执行相应的操作 + switch (status) { + // 服务上线(实例成功启动并可以正常处理请求) + case STATUS_UP: + statusName = "服务上线"; + break; + + // 服务离线(实例被手动或自动地从服务中移除) + case STATUS_OFFLINE: + statusName = "服务离线"; + break; + + // 服务受限(表示实例在某些方面受限,可能无法完全提供所有服务) + case STATUS_RESTRICTED: + statusName = "服务受限"; + break; + + // 停止服务状态(表示实例已被标记为停止提供服务,可能是计划内维护或测试) + case STATUS_OUT_OF_SERVICE: + statusName = "停止服务状态"; + break; + + // 服务下线(实例因崩溃、错误或其他原因停止运行) + case STATUS_DOWN: + statusName = "服务下线"; + break; + + // 服务未知异常(监控系统无法确定实例的当前状态) + case STATUS_UNKNOWN: + statusName = "服务未知异常"; + break; + + // 默认情况(没有匹配的状态) + default: + break; + } + log.info("Instance Status Change: 状态名称【{}】, 注册名称【{}】, 实例ID【{}】, 状态【{}】, 服务URL【{}】", + statusName, registName, instanceId, status, serviceUrl); + } }); } - } From e74f0ca6f8af892b707f1504cfd1913461191885 Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Thu, 25 Jul 2024 10:37:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96Monitor=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E6=9C=8D=E5=8A=A1=E4=BF=A1=E6=81=AF=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-extend/ruoyi-monitor-admin/pom.xml | 5 ++ .../monitor/admin/event/NotifierEvent.java | 44 +++++++++++++++ .../admin/notifier/CustomNotifier.java | 56 ++++++------------- .../monitor/admin/notifier/InfoNotifier.java | 34 +++++++++++ 4 files changed, 101 insertions(+), 38 deletions(-) create mode 100644 ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java create mode 100644 ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml index 91194c61b..0ed2d293c 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml +++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml @@ -39,6 +39,11 @@ lombok + + org.dromara + ruoyi-common-core + + diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java new file mode 100644 index 000000000..7df53e460 --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java @@ -0,0 +1,44 @@ +package org.dromara.monitor.admin.event; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 通知事件 + * + * @author AprilWind + */ +@Data +public class NotifierEvent implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 实例注册名称 + */ + private String registName; + + /** + * 实例状态名称 + */ + private String statusName; + + /** + * 实例ID + */ + private String instanceId; + + /** + * 实例状态 + */ + private String status; + + /** + * 服务URL + */ + private String serviceUrl; + +} diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java index 0094f72fa..e2b529449 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java @@ -6,6 +6,8 @@ import de.codecentric.boot.admin.server.domain.events.InstanceEvent; import de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent; import de.codecentric.boot.admin.server.notify.AbstractEventNotifier; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.utils.SpringUtils; +import org.dromara.monitor.admin.event.NotifierEvent; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @@ -38,46 +40,24 @@ public class CustomNotifier extends AbstractEventNotifier { String status = ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus(); // 获取服务URL String serviceUrl = instance.getRegistration().getServiceUrl(); - String statusName = null; - - // 根据实例状态执行相应的操作 - switch (status) { - // 服务上线(实例成功启动并可以正常处理请求) - case STATUS_UP: - statusName = "服务上线"; - break; - - // 服务离线(实例被手动或自动地从服务中移除) - case STATUS_OFFLINE: - statusName = "服务离线"; - break; - - // 服务受限(表示实例在某些方面受限,可能无法完全提供所有服务) - case STATUS_RESTRICTED: - statusName = "服务受限"; - break; - - // 停止服务状态(表示实例已被标记为停止提供服务,可能是计划内维护或测试) - case STATUS_OUT_OF_SERVICE: - statusName = "停止服务状态"; - break; - - // 服务下线(实例因崩溃、错误或其他原因停止运行) - case STATUS_DOWN: - statusName = "服务下线"; - break; - - // 服务未知异常(监控系统无法确定实例的当前状态) - case STATUS_UNKNOWN: - statusName = "服务未知异常"; - break; - - // 默认情况(没有匹配的状态) - default: - break; - } + String statusName = switch (status) { + case STATUS_UP -> "服务上线"; // 实例成功启动并可以正常处理请求 + case STATUS_OFFLINE -> "服务离线"; //实例被手动或自动地从服务中移除 + case STATUS_RESTRICTED -> "服务受限"; //表示实例在某些方面受限,可能无法完全提供所有服务 + case STATUS_OUT_OF_SERVICE -> "停止服务状态"; //表示实例已被标记为停止提供服务,可能是计划内维护或测试 + case STATUS_DOWN -> "服务下线"; //实例因崩溃、错误或其他原因停止运行 + case STATUS_UNKNOWN -> "服务未知异常"; //监控系统无法确定实例的当前状态 + default -> "未知状态"; //没有匹配的状态 + }; log.info("Instance Status Change: 状态名称【{}】, 注册名称【{}】, 实例ID【{}】, 状态【{}】, 服务URL【{}】", statusName, registName, instanceId, status, serviceUrl); + NotifierEvent notifier = new NotifierEvent(); + notifier.setRegistName(registName); + notifier.setStatusName(statusName); + notifier.setInstanceId(instanceId); + notifier.setStatus(status); + notifier.setServiceUrl(serviceUrl); + SpringUtils.context().publishEvent(notifier); } }); } diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java new file mode 100644 index 000000000..455883e38 --- /dev/null +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java @@ -0,0 +1,34 @@ +package org.dromara.monitor.admin.notifier; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.monitor.admin.event.NotifierEvent; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +/** + * 信息通知 + * + * @author AprilWind + */ +@RequiredArgsConstructor +@Slf4j +@Service +public class InfoNotifier { + + /** + * 异步处理通知事件的方法 + *

+ * 该方法会处理 `NotifierEvent` 事件,执行通知相关的操作,如发送邮件或短信 + * + * @param notifier 事件对象,包含了需要通知的详细信息,包括注册名称、状态名称、实例 ID、状态和服务 URL + */ + @Async + @EventListener + public void infoNotification(NotifierEvent notifier) { + // 在这里添加处理通知事件的逻辑 + // 例如,依据 notifier 对象的信息发送邮件或短信通知 + } + +} From e25083aea4008aab6f9be801b18d98e32dc6ad1b Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: Thu, 25 Jul 2024 10:55:46 +0800 Subject: [PATCH 3/3] =?UTF-8?q?del=20=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-extend/ruoyi-monitor-admin/pom.xml | 5 --- .../monitor/admin/event/NotifierEvent.java | 44 ------------------- .../admin/notifier/CustomNotifier.java | 9 ---- .../monitor/admin/notifier/InfoNotifier.java | 34 -------------- 4 files changed, 92 deletions(-) delete mode 100644 ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java delete mode 100644 ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java diff --git a/ruoyi-extend/ruoyi-monitor-admin/pom.xml b/ruoyi-extend/ruoyi-monitor-admin/pom.xml index 0ed2d293c..91194c61b 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/pom.xml +++ b/ruoyi-extend/ruoyi-monitor-admin/pom.xml @@ -39,11 +39,6 @@ lombok - - org.dromara - ruoyi-common-core - - diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java deleted file mode 100644 index 7df53e460..000000000 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/event/NotifierEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.dromara.monitor.admin.event; - -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 通知事件 - * - * @author AprilWind - */ -@Data -public class NotifierEvent implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 实例注册名称 - */ - private String registName; - - /** - * 实例状态名称 - */ - private String statusName; - - /** - * 实例ID - */ - private String instanceId; - - /** - * 实例状态 - */ - private String status; - - /** - * 服务URL - */ - private String serviceUrl; - -} diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java index e2b529449..838eefc47 100644 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java +++ b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/CustomNotifier.java @@ -6,8 +6,6 @@ import de.codecentric.boot.admin.server.domain.events.InstanceEvent; import de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent; import de.codecentric.boot.admin.server.notify.AbstractEventNotifier; import lombok.extern.slf4j.Slf4j; -import org.dromara.common.core.utils.SpringUtils; -import org.dromara.monitor.admin.event.NotifierEvent; import org.springframework.stereotype.Component; import reactor.core.publisher.Mono; @@ -51,13 +49,6 @@ public class CustomNotifier extends AbstractEventNotifier { }; log.info("Instance Status Change: 状态名称【{}】, 注册名称【{}】, 实例ID【{}】, 状态【{}】, 服务URL【{}】", statusName, registName, instanceId, status, serviceUrl); - NotifierEvent notifier = new NotifierEvent(); - notifier.setRegistName(registName); - notifier.setStatusName(statusName); - notifier.setInstanceId(instanceId); - notifier.setStatus(status); - notifier.setServiceUrl(serviceUrl); - SpringUtils.context().publishEvent(notifier); } }); } diff --git a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java b/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java deleted file mode 100644 index 455883e38..000000000 --- a/ruoyi-extend/ruoyi-monitor-admin/src/main/java/org/dromara/monitor/admin/notifier/InfoNotifier.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.dromara.monitor.admin.notifier; - -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.dromara.monitor.admin.event.NotifierEvent; -import org.springframework.context.event.EventListener; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; - -/** - * 信息通知 - * - * @author AprilWind - */ -@RequiredArgsConstructor -@Slf4j -@Service -public class InfoNotifier { - - /** - * 异步处理通知事件的方法 - *

- * 该方法会处理 `NotifierEvent` 事件,执行通知相关的操作,如发送邮件或短信 - * - * @param notifier 事件对象,包含了需要通知的详细信息,包括注册名称、状态名称、实例 ID、状态和服务 URL - */ - @Async - @EventListener - public void infoNotification(NotifierEvent notifier) { - // 在这里添加处理通知事件的逻辑 - // 例如,依据 notifier 对象的信息发送邮件或短信通知 - } - -}