|
@@ -0,0 +1,37 @@
|
|
|
+package com.pig4cloud.pigx.monitor.support;
|
|
|
+
|
|
|
+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.domain.events.InstanceStatusChangedEvent;
|
|
|
+import de.codecentric.boot.admin.server.notify.AbstractEventNotifier;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+import reactor.core.publisher.Mono;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author lengleng
|
|
|
+ * @date 2019-01-23
|
|
|
+ * <p>
|
|
|
+ * 服务状态变化通知
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Component
|
|
|
+public class StatusChangeNotifier extends AbstractEventNotifier {
|
|
|
+ protected StatusChangeNotifier(InstanceRepository repository) {
|
|
|
+ super(repository);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
|
|
|
+ return Mono.fromRunnable(() -> {
|
|
|
+ if (event instanceof InstanceStatusChangedEvent) {
|
|
|
+ log.error("Instance {} ({}) is {}", instance.getRegistration().getName(), event.getInstance(),
|
|
|
+ ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus());
|
|
|
+ } else {
|
|
|
+ log.error("Instance {} ({}) {}", instance.getRegistration().getName(), event.getInstance(),
|
|
|
+ event.getType());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|