Quellcode durchsuchen

删除监控模块中暂时不使用的代码

reghao vor 4 Jahren
Ursprung
Commit
525eeae943
28 geänderte Dateien mit 150 neuen und 744 gelöschten Zeilen
  1. 0 6
      README.md
  2. 1 1
      common/src/main/java/cn/reghao/autodop/common/machine/Machine.java
  3. 1 2
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/repository/AppRunningRepository.java
  4. 2 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/AppBuilding.java
  5. 2 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/AppDeploying.java
  6. 2 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/AppRunning.java
  7. 1 20
      dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/rpc/AppRpcClazzResultHandlerImpl.java
  8. 3 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/db/crud/MachineHostCrudImpl.java
  9. 4 5
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/model/po/MachineHost.java
  10. 8 12
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/MachineService.java
  11. 4 7
      dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/NodePubClazzImpl.java
  12. 4 14
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorJob.java
  13. 46 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorJobData.java
  14. 14 24
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorScheduler.java
  15. 0 48
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/controller/MonitorController.java
  16. 0 52
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/controller/MonitorPageController.java
  17. 0 30
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/MonitorJobCrudService.java
  18. 0 16
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/repository/MonitorJobRepository.java
  19. 26 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/job/AppHealthCheckJob.java
  20. 32 0
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/job/MachineStatCheckJob.java
  21. 0 15
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/model/po/JobId.java
  22. 0 9
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/model/po/JobType.java
  23. 0 110
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorJobData.java
  24. 0 76
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorListService.java
  25. 0 18
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorService.java
  26. 0 105
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorServiceImpl.java
  27. 0 73
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/job/AppHealthCheckJob.java
  28. 0 101
      dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/job/MachineStatCheckJob.java

+ 0 - 6
README.md

@@ -22,15 +22,9 @@ autodop-dmaster 功能模块
 ### 主机集群
 - 主机管理
 
-### 虚拟主机
-- 虚拟主机管理
-
 ### 应用
 - 构建部署
 
-### 第三方应用
-- 备份还原
-
 ### 系统管理
 
 ## autodop-dagent

+ 1 - 1
common/src/main/java/cn/reghao/autodop/common/machine/Machine.java

@@ -40,7 +40,7 @@ public class Machine {
         machineStat.setMachineId(MachineId.id());
         machineStat.setMemoryDetail(memory.detail());
         machineStat.setDiskDetails(Disk.details());
-        return new MachineStat();
+        return machineStat;
     }
 
     @Data

+ 1 - 2
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/db/repository/AppRunningRepository.java

@@ -12,8 +12,7 @@ import java.util.List;
  * @author reghao
  * @date 2021-05-24 15:20:24
  */
-public interface AppRunningRepository
-        extends JpaRepository<AppRunning, Integer>, JpaSpecificationExecutor<AppRunning> {
+public interface AppRunningRepository extends JpaRepository<AppRunning, Integer>, JpaSpecificationExecutor<AppRunning> {
     List<AppRunning> findByAppId(String appId);
     AppRunning findByAppIdAndMachineId(String appId, String machineId);
     Page<AppRunning> findAllByEnv(String env, Pageable pageable);

+ 2 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/AppBuilding.java

@@ -13,6 +13,8 @@ import javax.persistence.Entity;
 import java.time.LocalDateTime;
 
 /**
+ * 需要构建的应用
+ *
  * @author reghao
  * @date 2021-05-21 09:57:35
  */

+ 2 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/AppDeploying.java

@@ -10,6 +10,8 @@ import javax.persistence.Entity;
 import java.time.LocalDateTime;
 
 /**
+ * 需要部署的应用
+ *
  * @author reghao
  * @date 2021-05-21 09:57:35
  */

+ 2 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/model/po/AppRunning.java

@@ -10,6 +10,8 @@ import javax.persistence.Entity;
 import java.time.LocalDateTime;
 
 /**
+ * 正在运行的应用
+ *
  * @author reghao
  * @date 2021-05-31 13:36:46
  */

+ 1 - 20
dmaster/src/main/java/cn/reghao/autodop/dmaster/app/service/rpc/AppRpcClazzResultHandlerImpl.java

@@ -15,13 +15,10 @@ import cn.reghao.autodop.dmaster.app.model.po.config.AppConfig;
 import cn.reghao.autodop.dmaster.app.model.po.log.BuildLog;
 import cn.reghao.autodop.dmaster.app.model.po.log.DeployLog;
 import cn.reghao.autodop.dmaster.app.service.bd.DeployNotifyMsg;
-import cn.reghao.autodop.dmaster.monitor.service.MonitorService;
-import cn.reghao.autodop.dmaster.monitor.service.job.AppHealthCheckJob;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyType;
 import cn.reghao.autodop.dmaster.notification.service.NotifyService;
 import cn.reghao.autodop.dmaster.notification.service.notifier.ding.DingMsg;
-import org.quartz.JobDataMap;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -33,7 +30,6 @@ import java.util.Optional;
  */
 @Service
 public class AppRpcClazzResultHandlerImpl implements AppRpcClazzResultHandler {
-    private MonitorService monitorService;
     private AppRunningRepository runningRepository;
     private NotifyService notifyService;
     private WebRequest webRequest;
@@ -42,14 +38,12 @@ public class AppRpcClazzResultHandlerImpl implements AppRpcClazzResultHandler {
     private AppDeployingRepository deployingRepository;
     private AppConfigQuery appConfigQuery;
 
-    public AppRpcClazzResultHandlerImpl(MonitorService monitorService,
-                                        AppRunningRepository runningRepository,
+    public AppRpcClazzResultHandlerImpl(AppRunningRepository runningRepository,
                                         NotifyService notifyService,
                                         BuildLogRepository buildLogRepository,
                                         DeployLogRepository deployLogRepository,
                                         AppDeployingRepository deployingRepository,
                                         AppConfigQuery appConfigQuery) {
-        this.monitorService = monitorService;
         this.runningRepository = runningRepository;
         this.notifyService = notifyService;
         this.webRequest = new DefaultWebRequest();
@@ -124,17 +118,4 @@ public class AppRpcClazzResultHandlerImpl implements AppRpcClazzResultHandler {
             runningRepository.save(appRunning);
         }
     }
-
-    public void addMonitor(String appId, String machineId) {
-        String jobClassName = AppHealthCheckJob.class.getSimpleName();
-        String jobId = String.format("%s-%s-%s", appId, machineId, jobClassName);
-
-        JobDataMap jobDataMap = new JobDataMap();
-        jobDataMap.put("notifyService", notifyService);
-        jobDataMap.put("notifyGroups", "");
-        jobDataMap.put("webRequest", webRequest);
-        jobDataMap.put("appId", appId);
-        jobDataMap.put("machineId", machineId);
-        jobDataMap.put("runningRepository", runningRepository);
-    }
 }

+ 3 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/db/crud/MachineHostCrudImpl.java

@@ -4,6 +4,7 @@ import cn.reghao.autodop.dmaster.machine.db.repository.MachineHostRepository;
 import cn.reghao.autodop.dmaster.machine.model.po.MachineHost;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -31,6 +32,8 @@ public class MachineHostCrudImpl implements MachineHostCrud {
 
     @Override
     public void update(MachineHost machineHost) {
+        // 利用 AOP 统一设置更新时间
+        machineHost.setUpdateTime(LocalDateTime.now());
         hostRepository.save(machineHost);
     }
 

+ 4 - 5
dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/model/po/MachineHost.java

@@ -4,7 +4,6 @@ import cn.reghao.autodop.common.msg.pub.dto.node.constant.NodeStatus;
 import cn.reghao.autodop.dmaster.app.model.constant.EnvList;
 import cn.reghao.autodop.dmaster.util.db.BaseEntity;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
-import cn.reghao.jdkutil.converter.DateTimeConverter;
 import lombok.*;
 import org.hibernate.annotations.LazyCollection;
 import org.hibernate.annotations.LazyCollectionOption;
@@ -25,13 +24,13 @@ public class MachineHost extends BaseEntity<Integer> {
     @Column(unique = true, nullable = false)
     private String machineId;
     private String machineIpv4;
-    private String bootTime;
+    private LocalDateTime bootTime;
     private String osArch;
     private String osName;
     private String osVersion;
     private String env;
     private String status;
-    private String lastCheck;
+    private long lastCheck;
     @Embedded
     private SshAuth sshAuth;
     @ManyToMany(cascade = CascadeType.REFRESH)
@@ -48,13 +47,13 @@ public class MachineHost extends BaseEntity<Integer> {
         } else {
             this.machineIpv4 = "127.0.0.1";
         }
-        this.bootTime = DateTimeConverter.format(machineInfo.getBootTime());
+        this.bootTime = machineInfo.getBootTime();
         this.osArch = machineInfo.getArch();
         this.osName = machineInfo.getName();
         this.osVersion = machineInfo.getVersion();
 
         this.env = EnvList.test.name();
         this.status = NodeStatus.Online.name();
-        this.lastCheck = DateTimeConverter.format(LocalDateTime.now());
+        this.lastCheck = System.currentTimeMillis();
     }
 }

+ 8 - 12
dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/MachineService.java

@@ -2,7 +2,6 @@ package cn.reghao.autodop.dmaster.machine.service;
 
 import cn.reghao.autodop.dmaster.machine.db.crud.MachineHostCrud;
 import cn.reghao.autodop.dmaster.machine.db.query.MachineHostQuery;
-import cn.reghao.autodop.dmaster.machine.db.query.MachineQuery;
 import cn.reghao.autodop.dmaster.machine.model.po.MachineHost;
 import cn.reghao.autodop.dmaster.machine.model.po.SshAuth;
 import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
@@ -14,34 +13,31 @@ import java.util.List;
  * @author reghao
  * @date 2019-11-15 08:48:04
  */
-@Deprecated
 @Service
 public class MachineService {
     private final MachineHostQuery hostQuery;
-    private final MachineHostCrud hostCrudService;
-    private final MachineQuery machineQuery;
+    private final MachineHostCrud hostCrud;
 
-    public MachineService(MachineHostQuery hostQuery, MachineHostCrud hostCrudService, MachineQuery machineQuery) {
+    public MachineService(MachineHostQuery hostQuery, MachineHostCrud hostCrud) {
         this.hostQuery = hostQuery;
-        this.hostCrudService = hostCrudService;
-        this.machineQuery = machineQuery;
+        this.hostCrud = hostCrud;
     }
 
     public void setMachineNotify(String machineId, List<NotifyGroup> notifyGroups) {
-        MachineHost machineHost = machineQuery.query(machineId);
+        MachineHost machineHost = hostQuery.findByMachineId(machineId);
         machineHost.setNotifyGroups(notifyGroups);
-        hostCrudService.save(machineHost);
+        hostCrud.save(machineHost);
     }
 
     public void setSshAuth(String machineId, SshAuth sshAuth) {
         MachineHost machineHost = hostQuery.findByMachineId(machineId);
         machineHost.setSshAuth(sshAuth);
-        hostCrudService.save(machineHost);
+        hostCrud.save(machineHost);
     }
 
     public void setEnv(String machineId, String env) {
-        MachineHost machineHost = machineQuery.query(machineId);
+        MachineHost machineHost = hostQuery.findByMachineId(machineId);
         machineHost.setEnv(env);
-        hostCrudService.save(machineHost);
+        hostCrud.save(machineHost);
     }
 }

+ 4 - 7
dmaster/src/main/java/cn/reghao/autodop/dmaster/machine/service/NodePubClazzImpl.java

@@ -11,11 +11,8 @@ import cn.reghao.autodop.dmaster.machine.model.po.MachineHost;
 import cn.reghao.autodop.dmaster.machine.model.po.MachineInfo;
 import cn.reghao.autodop.dmaster.machine.db.crud.NodeLogCrud;
 import cn.reghao.autodop.dmaster.machine.model.po.NodeLog;
-import cn.reghao.jdkutil.converter.DateTimeConverter;
 import org.springframework.stereotype.Service;
 
-import java.time.LocalDateTime;
-
 /**
  * @author reghao
  * @date 2021-10-15 16:39:48
@@ -49,7 +46,7 @@ public class NodePubClazzImpl {
 
         MachineHost machineHost = hostQuery.findByMachineId(machineId);
         if (machineHost != null) {
-            machineHost.setLastCheck(DateTimeConverter.format(LocalDateTime.now()));
+            machineHost.setLastCheck(System.currentTimeMillis());
             machineHost.setStatus(NodeStatus.Online.name());
             hostCrud.update(machineHost);
         }
@@ -59,18 +56,18 @@ public class NodePubClazzImpl {
         String machineId = machineStat.getMachineId();
         MachineHost machineHost = hostQuery.findByMachineId(machineId);
         if (machineHost != null) {
-            machineHost.setLastCheck(DateTimeConverter.format(LocalDateTime.now()));
+            machineHost.setLastCheck(System.currentTimeMillis());
             machineHost.setStatus(NodeStatus.Offline.name());
             hostCrud.update(machineHost);
         }
     }
 
-    // TODO 异步处理 MachineStat 中的信息,检查系统负载,CPU,内存,磁盘等使用情况
+    // TODO 根据 MachineStat 中的信息检查系统负载,CPU,内存,磁盘等使用情况
     public void heartbeat(Machine.MachineStat machineStat) {
         String machineId = machineStat.getMachineId();
         MachineHost machineHost = hostQuery.findByMachineId(machineId);
         if (machineHost != null) {
-            machineHost.setLastCheck(DateTimeConverter.format(LocalDateTime.now()));
+            machineHost.setLastCheck(System.currentTimeMillis());
             hostCrud.update(machineHost);
         }
     }

+ 4 - 14
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/model/po/MonitorJob.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorJob.java

@@ -1,10 +1,7 @@
-package cn.reghao.autodop.dmaster.monitor.model.po;
+package cn.reghao.autodop.dmaster.monitor;
 
-import cn.reghao.autodop.dmaster.util.db.BaseEntity;
-import lombok.*;
-
-import javax.persistence.*;
-import javax.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
 
 /**
  * 监控任务
@@ -12,19 +9,12 @@ import javax.validation.constraints.NotBlank;
  * @author reghao
  * @date 2021-06-23 20:50:41
  */
-@NoArgsConstructor
 @Getter
 @Setter
-@Entity
-public class MonitorJob extends BaseEntity<Integer> {
-    @NotBlank(message = "任务 ID 不能为空白字符串")
-    @Column(nullable = false, unique = true)
+public class MonitorJob {
     private String jobId;
-    @NotBlank(message = "任务类名不能为空白字符串")
     private String jobClassName;
-    @NotBlank(message = "任务类型不能为空白字符串")
     private String jobType;
-    @NotBlank(message = "CRON 表达式不能为空白字符串")
     private String cronExp;
     private Boolean enable;
     // 已通知次数

+ 46 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorJobData.java

@@ -0,0 +1,46 @@
+package cn.reghao.autodop.dmaster.monitor;
+
+import cn.reghao.autodop.common.http.DefaultWebRequest;
+import cn.reghao.autodop.dmaster.app.db.query.AppRunningQuery;
+import cn.reghao.autodop.dmaster.machine.db.crud.MachineHostCrud;
+import cn.reghao.autodop.dmaster.machine.db.query.MachineHostQuery;
+import cn.reghao.autodop.dmaster.notification.service.NotifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.JobDataMap;
+import org.springframework.stereotype.Service;
+
+/**
+ * 监控任务需要的数据
+ *
+ * @author reghao
+ * @date 2021-07-06 09:25:50
+ */
+@Slf4j
+@Service
+public class MonitorJobData {
+    private MachineHostQuery machineHostQuery;
+    private MachineHostCrud machineHostCrud;
+    private AppRunningQuery appRunningQuery;
+    private NotifyService notifyService;
+
+    public MonitorJobData(MachineHostQuery machineHostQuery, MachineHostCrud machineHostCrud,
+                          AppRunningQuery appRunningQuery, NotifyService notifyService) {
+        this.machineHostQuery = machineHostQuery;
+        this.machineHostCrud = machineHostCrud;
+        this.appRunningQuery = appRunningQuery;
+        this.notifyService = notifyService;
+    }
+
+    public JobDataMap machineDataMap() {
+        JobDataMap jobDataMap = new JobDataMap();
+        jobDataMap.put("notifyService", notifyService);
+        return jobDataMap;
+    }
+
+    public JobDataMap appDataMap() {
+        JobDataMap jobDataMap = new JobDataMap();
+        jobDataMap.put("notifyService", notifyService);
+        jobDataMap.put("webRequest", new DefaultWebRequest());
+        return jobDataMap;
+    }
+}

+ 14 - 24
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorScheduler.java → dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/MonitorScheduler.java

@@ -1,16 +1,13 @@
-package cn.reghao.autodop.dmaster.monitor.service;
+package cn.reghao.autodop.dmaster.monitor;
 
-import cn.reghao.autodop.dmaster.DmasterApplication;
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.db.repository.MonitorJobRepository;
-import cn.reghao.jdkutil.clazz.PackageScanner;
+import cn.reghao.autodop.dmaster.monitor.job.AppHealthCheckJob;
 import lombok.extern.slf4j.Slf4j;
 import org.quartz.*;
 import org.quartz.impl.StdSchedulerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.PostConstruct;
-import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -22,16 +19,11 @@ import java.util.List;
 @Slf4j
 @Service
 public class MonitorScheduler {
-    private Scheduler scheduler;
-    private MonitorJobRepository monitorJobRepository;
-    private PackageScanner packageScanner;
-    private MonitorJobData monitorJobData;
+    private final Scheduler scheduler;
+    private final MonitorJobData monitorJobData;
 
-    public MonitorScheduler(MonitorJobRepository monitorJobRepository, MonitorJobData monitorJobData)
-            throws SchedulerException {
-        //this.scheduler = StdSchedulerFactory.getDefaultScheduler();
-        this.monitorJobRepository = monitorJobRepository;
-        this.packageScanner = new PackageScanner();
+    public MonitorScheduler(MonitorJobData monitorJobData) throws SchedulerException {
+        this.scheduler = StdSchedulerFactory.getDefaultScheduler();
         this.monitorJobData = monitorJobData;
     }
 
@@ -42,17 +34,17 @@ public class MonitorScheduler {
      * @return
      * @date 2021-06-24 上午10:22
      */
-    //@PostConstruct
-    public void startScheduler() throws SchedulerException, IOException {
+    @PostConstruct
+    public void startScheduler() throws SchedulerException {
         //startAllJobs();
         //scheduler.start();
     }
 
-    private void startAllJobs() throws SchedulerException, IOException {
-        List<MonitorJob> jobs = monitorJobRepository.findAll();
+    private void startAllJobs() throws SchedulerException {
+        List<MonitorJob> jobs = new ArrayList<>();
         for (MonitorJob job : jobs) {
             if (job.getEnable()) {
-                JobDataMap jobDataMap = monitorJobData.jobDataMap(job);
+                JobDataMap jobDataMap = monitorJobData.appDataMap();
                 if (jobDataMap != null) {
                     addJob(job, jobDataMap);
                 }
@@ -60,12 +52,10 @@ public class MonitorScheduler {
         }
     }
 
-    public void addJob(MonitorJob monitorJob, JobDataMap jobDataMap) throws IOException, SchedulerException {
+    public void addJob(MonitorJob monitorJob, JobDataMap jobDataMap) throws SchedulerException {
         String jobId = monitorJob.getJobId();
-        String jobClassName = monitorJob.getJobClassName();
         String cronExp = monitorJob.getCronExp();
-        String jobPkg = "cn.reghao.autodop.dmaster.monitor.service.job";
-        Class clazz = packageScanner.findClassBySimpleName(DmasterApplication.class, jobClassName, jobPkg);
+        Class<? extends Job> clazz = AppHealthCheckJob.class;
 
         JobDetail jobDetail = JobBuilder.newJob(clazz)
                 .withIdentity(jobId)

+ 0 - 48
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/controller/MonitorController.java

@@ -1,48 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.controller;
-
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.service.MonitorService;
-import cn.reghao.jdkutil.result.WebBody;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-/**
- * @author reghao
- * @date 2019-08-30 18:49:15
- */
-@Slf4j
-@Api(tags = "监控任务接口")
-@RestController
-@RequestMapping("/api/monitor")
-public class MonitorController {
-    private MonitorService monitorService;
-
-    public MonitorController(MonitorService monitorService) {
-        this.monitorService = monitorService;
-    }
-
-    @ApiOperation(value = "编辑监控任务")
-    @PostMapping(value = "/job", produces = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity<String> editMonitorJob(@Valid MonitorJob monitorJob) throws Exception {
-        monitorService.rescheduleJob(monitorJob);
-        return ResponseEntity.ok().body(WebBody.success());
-    }
-
-    @ApiOperation(value = "开始/停止监控任务")
-    @PostMapping(value = "/job/{jobId}/{enable}", produces = MediaType.APPLICATION_JSON_VALUE)
-    public ResponseEntity<String> monitorJobStatus(@PathVariable("jobId") String jobId,
-                                                   @PathVariable("enable") Boolean enable) {
-        if (!enable) {
-            monitorService.pauseJob(jobId);
-        } else {
-            monitorService.resumeJob(jobId);
-        }
-        return ResponseEntity.ok().body(WebBody.success());
-    }
-}

+ 0 - 52
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/controller/MonitorPageController.java

@@ -1,52 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.controller;
-
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.db.repository.MonitorJobRepository;
-import cn.reghao.autodop.dmaster.notification.db.repository.NotifyGroupRepository;
-import cn.reghao.autodop.dmaster.util.db.PageList;
-import cn.reghao.autodop.dmaster.util.db.PageSort;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author reghao
- * @date 2019-08-30 18:49:15
- */
-@Slf4j
-@Api(tags = "监控任务页面")
-@Controller
-@RequestMapping("/monitor")
-public class MonitorPageController {
-    private MonitorJobRepository monitorJobRepository;
-    private NotifyGroupRepository receiverRepository;
-
-    public MonitorPageController(MonitorJobRepository monitorJobRepository, NotifyGroupRepository receiverRepository) {
-        this.monitorJobRepository = monitorJobRepository;
-        this.receiverRepository = receiverRepository;
-    }
-
-    @ApiOperation(value = "监控任务页面")
-    @GetMapping("/job")
-    public String machineMonitorPage(Model model) {
-        PageRequest pageRequest = PageSort.pageRequest();
-        Page<MonitorJob> page = monitorJobRepository.findAll(pageRequest);
-        PageList<MonitorJob> pageList = PageList.pageList(page);
-
-        model.addAttribute("page", page);
-        model.addAttribute("list", pageList.getList());
-        return "/monitor/index";
-    }
-
-    @ApiOperation(value = "监控任务编辑页面")
-    @GetMapping("/job/edit/{id}")
-    public String monitorJobEditPage(@PathVariable("id") MonitorJob monitorJob, Model model) {
-        model.addAttribute("monitorJob", monitorJob);
-        return "/monitor/edit";
-    }
-}

+ 0 - 30
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/MonitorJobCrudService.java

@@ -1,30 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.db;
-
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.db.repository.MonitorJobRepository;
-import org.springframework.stereotype.Service;
-
-/**
- * @author reghao
- * @date 2021-06-15 16:29:18
- */
-@Service
-public class MonitorJobCrudService {
-    private MonitorJobRepository jobRepository;
-
-    public MonitorJobCrudService(MonitorJobRepository jobRepository) {
-        this.jobRepository = jobRepository;
-    }
-
-    public void insertOrUpdate(MonitorJob monitorJob) {
-        jobRepository.save(monitorJob);
-    }
-
-    public void delete(MonitorJob monitorJob) {
-        jobRepository.delete(monitorJob);
-    }
-
-    public MonitorJob selectByUk(String jobId) {
-        return jobRepository.findByJobId(jobId);
-    }
-}

+ 0 - 16
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/db/repository/MonitorJobRepository.java

@@ -1,16 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.db.repository;
-
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * @author reghao
- * @date 2021-05-24 15:20:24
- */
-public interface MonitorJobRepository extends JpaRepository<MonitorJob, Integer> {
-    MonitorJob findByJobId(String jobId);
-
-    @Transactional
-    void deleteByJobId(String jobId);
-}

+ 26 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/job/AppHealthCheckJob.java

@@ -0,0 +1,26 @@
+package cn.reghao.autodop.dmaster.monitor.job;
+
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+
+/**
+ * 应用健康检查任务
+ * 发送 appDeploy 事件前停止任务
+ * 接收 appDeployResult 事件后添加(若是第一次部署)并启动任务
+ *
+ * 发送 appRestart 事件前停止任务
+ * 接收 appRestartResult 事件后启动任务
+ *
+ * 发送 appStop 事件前停止任务
+ * 接收 appStartResult 事件后启动任务
+ *
+ * @author reghao
+ * @date 2021-06-22 19:04:10
+ */
+@Slf4j
+public class AppHealthCheckJob implements Job {
+    @Override
+    public void execute(JobExecutionContext context) {
+    }
+}

+ 32 - 0
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/job/MachineStatCheckJob.java

@@ -0,0 +1,32 @@
+package cn.reghao.autodop.dmaster.monitor.job;
+
+import cn.reghao.autodop.dmaster.notification.service.NotifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.quartz.Job;
+import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
+import org.quartz.JobExecutionContext;
+
+/**
+ * 机器状态监控任务
+ * 接收到 dagentStart 事件时添加(若 machine 是第一次注册)并启动(若不是第一次注册且存在通知组)任务
+ * 接收到 dagnetShutdown 事件时停止任务
+ * 删除 MachineInfo 时删除任务
+ * 任务需要设置通知组后才能启用
+ *
+ * TODO 同一个任务是否会被多个线程同时执行?
+ *
+ * @author reghao
+ * @date 2021-06-22 19:04:10
+ */
+@Slf4j
+public class MachineStatCheckJob implements Job {
+    @Override
+    public void execute(JobExecutionContext context) {
+        JobDetail jobDetail = context.getJobDetail();
+        JobDataMap jobDataMap = jobDetail.getJobDataMap();
+        String jobId = jobDetail.getKey().getName();
+
+        NotifyService notifyService = (NotifyService) jobDataMap.get("notifyService");
+    }
+}

+ 0 - 15
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/model/po/JobId.java

@@ -1,15 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.model.po;
-
-import lombok.AllArgsConstructor;
-import lombok.Data;
-
-/**
- * @author reghao
- * @date 2021-07-06 17:29:26
- */
-@AllArgsConstructor
-@Data
-public class JobId {
-    private String jobId;
-    private String jobClassName;
-}

+ 0 - 9
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/model/po/JobType.java

@@ -1,9 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.model.po;
-
-/**
- * @author reghao
- * @date 2021-07-06 09:49:45
- */
-public enum JobType {
-    machine,app
-}

+ 0 - 110
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorJobData.java

@@ -1,110 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.service;
-
-import cn.reghao.autodop.common.http.DefaultWebRequest;
-import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.db.repository.AppRunningRepository;
-import cn.reghao.autodop.dmaster.machine.db.crud.MachineStatCrud;
-import cn.reghao.autodop.dmaster.machine.db.query.MachineQuery;
-import cn.reghao.autodop.dmaster.machine.db.query.MachineStatQuery;
-import cn.reghao.autodop.dmaster.monitor.db.MonitorJobCrudService;
-import cn.reghao.autodop.dmaster.monitor.model.po.JobId;
-import cn.reghao.autodop.dmaster.monitor.model.po.JobType;
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.service.job.AppHealthCheckJob;
-import cn.reghao.autodop.dmaster.monitor.service.job.MachineStatCheckJob;
-import cn.reghao.autodop.dmaster.notification.service.NotifyService;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.JobDataMap;
-import org.springframework.stereotype.Service;
-
-/**
- * 监控任务需要的数据
- *
- * @author reghao
- * @date 2021-07-06 09:25:50
- */
-@Slf4j
-@Service
-public class MonitorJobData {
-    private MonitorJobCrudService jobCrudService;
-    private NotifyService notifyService;
-    private MachineStatCrud statCrudService;
-    private MachineStatQuery statQuery;
-    private MachineQuery machineQuery;
-    private AppRunningRepository runningRepository;
-    private AppConfigQuery appConfigQuery;
-
-    public MonitorJobData(MonitorJobCrudService jobCrudService,
-                          NotifyService notifyService,
-                          MachineStatCrud statCrudService,
-                          MachineStatQuery statQuery,
-                          MachineQuery machineQuery,
-                          AppRunningRepository runningRepository,
-                          AppConfigQuery appConfigQuery) {
-        this.jobCrudService = jobCrudService;
-        this.notifyService = notifyService;
-        this.statCrudService = statCrudService;
-        this.statQuery = statQuery;
-        this.machineQuery = machineQuery;
-        this.runningRepository = runningRepository;
-        this.appConfigQuery = appConfigQuery;
-    }
-
-    public JobId machineMonitorJobId(String machineId) {
-        String jobClassName = MachineStatCheckJob.class.getSimpleName();
-        String jobId = String.format("%s-%s", machineId, jobClassName);
-        return new JobId(jobId, jobClassName);
-    }
-
-    public JobId appMonitorJobId(String appId, String machineId) {
-        String jobClassName = AppHealthCheckJob.class.getSimpleName();
-        String jobId = String.format("%s-%s-%s", appId, machineId, jobClassName);
-        return new JobId(jobId, jobClassName);
-    }
-
-    public JobDataMap jobDataMap(MonitorJob monitorJob) {
-        String jobId = monitorJob.getJobId();
-        String jobType = monitorJob.getJobType();
-        JobDataMap jobDataMap;
-        switch (JobType.valueOf(jobType)) {
-            case machine:
-                jobDataMap = machineDataMap(jobId);
-                break;
-            case app:
-                jobDataMap = appDataMap(jobId);
-                break;
-            default:
-                jobDataMap = null;
-        }
-        return jobDataMap;
-    }
-
-    private JobDataMap machineDataMap(String jobId) {
-        String machineId = jobId.split("-")[0];
-
-        JobDataMap jobDataMap = new JobDataMap();
-        jobDataMap.put("notifyService", notifyService);
-        jobDataMap.put("jobCrudService", jobCrudService);
-        jobDataMap.put("statCrudService", statCrudService);
-        jobDataMap.put("statQuery", statQuery);
-        jobDataMap.put("machineQuery", machineQuery);
-        jobDataMap.put("machineId", machineId);
-        return jobDataMap;
-    }
-
-    private JobDataMap appDataMap(String jobId) {
-        String[] arr = jobId.split("-");
-        String appId = arr[0];
-        String machineId = arr[1];
-
-        JobDataMap jobDataMap = new JobDataMap();
-        jobDataMap.put("notifyService", notifyService);
-        jobDataMap.put("jobCrudService", jobCrudService);
-        jobDataMap.put("runningRepository", runningRepository);
-        jobDataMap.put("appQuery", appConfigQuery);
-        jobDataMap.put("webRequest", new DefaultWebRequest());
-        jobDataMap.put("appId", appId);
-        jobDataMap.put("machineId", machineId);
-        return jobDataMap;
-    }
-}

+ 0 - 76
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorListService.java

@@ -1,76 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.service;
-
-import cn.reghao.autodop.dmaster.app.model.po.AppRunning;
-import cn.reghao.autodop.dmaster.app.db.repository.AppRunningRepository;
-import cn.reghao.autodop.dmaster.machine.model.po.MachineInfo;
-import cn.reghao.autodop.dmaster.machine.db.repository.MachineInfoRepository;
-import cn.reghao.autodop.dmaster.monitor.model.po.JobType;
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.db.repository.MonitorJobRepository;
-import cn.reghao.autodop.dmaster.monitor.service.job.AppHealthCheckJob;
-import cn.reghao.autodop.dmaster.monitor.service.job.MachineStatCheckJob;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * @author reghao
- * @date 2020-10-22 17:51:56
- */
-@Service
-public class MonitorListService {
-    private MachineInfoRepository infoRepository;
-    private AppRunningRepository runningRepository;
-    private MonitorJobRepository monitorJobRepository;
-
-    public MonitorListService(MachineInfoRepository infoRepository,
-                              AppRunningRepository runningRepository,
-                              MonitorJobRepository monitorJobRepository) {
-        this.infoRepository = infoRepository;
-        this.runningRepository = runningRepository;
-        this.monitorJobRepository = monitorJobRepository;
-    }
-
-    public void refresh() {
-        refreshMachineJobs();
-        refreshAppJobs();
-    }
-
-    private void refreshMachineJobs() {
-        List<MachineInfo> machineInfos = infoRepository.findAll();
-        List<MonitorJob> monitorJobs = machineInfos.stream()
-                .map(machineInfo -> {
-                    String machineId = machineInfo.getMachineId();
-                    String jobClassName = MachineStatCheckJob.class.getSimpleName();
-                    String jobId = String.format("%s-%s", machineId, jobClassName);
-
-                    MonitorJob monitorJob = monitorJobRepository.findByJobId(jobId);
-                    if (monitorJob == null) {
-                        monitorJob = new MonitorJob(jobId, jobClassName, JobType.machine.name());
-                    }
-                    return monitorJob;
-                })
-                .collect(Collectors.toList());
-        monitorJobRepository.saveAll(monitorJobs);
-    }
-
-    private void refreshAppJobs() {
-        List<AppRunning> appRunnings = runningRepository.findAll();
-        List<MonitorJob> monitorJobs = appRunnings.stream()
-                .map(appRunning -> {
-                    String appId = appRunning.getAppId();
-                    String machineId = appRunning.getMachineId();
-                    String jobClassName = AppHealthCheckJob.class.getSimpleName();
-                    String jobId = String.format("%s-%s-%s", appId, machineId, jobClassName);
-
-                    MonitorJob monitorJob = monitorJobRepository.findByJobId(jobId);
-                    if (monitorJob == null) {
-                        monitorJob = new MonitorJob(jobId, jobClassName, JobType.app.name());
-                    }
-                    return monitorJob;
-                })
-                .collect(Collectors.toList());
-        monitorJobRepository.saveAll(monitorJobs);
-    }
-}

+ 0 - 18
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorService.java

@@ -1,18 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.service;
-
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import org.quartz.SchedulerException;
-
-/**
- * 监控任务管理接口
- *
- * @author reghao
- * @date 2020-10-22 17:51:56
- */
-public interface MonitorService {
-    void startJob(MonitorJob monitorJob) throws Exception;
-    void rescheduleJob(MonitorJob monitorJob) throws SchedulerException;
-    void deleteJob(String jobId);
-    void pauseJob(String jobId);
-    void resumeJob(String jobId);
-}

+ 0 - 105
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/MonitorServiceImpl.java

@@ -1,105 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.service;
-
-import cn.reghao.autodop.dmaster.monitor.model.po.MonitorJob;
-import cn.reghao.autodop.dmaster.monitor.db.repository.MonitorJobRepository;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.JobDataMap;
-import org.quartz.SchedulerException;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-
-/**
- * @author reghao
- * @date 2020-10-22 17:51:56
- */
-@Slf4j
-@Service
-public class MonitorServiceImpl implements MonitorService {
-    private MonitorScheduler monitorScheduler;
-    private MonitorJobData monitorJobData;
-    private MonitorJobRepository monitorJobRepository;
-
-    public MonitorServiceImpl(MonitorScheduler monitorScheduler,
-                              MonitorJobData monitorJobData,
-                              MonitorJobRepository monitorJobRepository) {
-        this.monitorScheduler = monitorScheduler;
-        this.monitorJobData = monitorJobData;
-        this.monitorJobRepository = monitorJobRepository;
-    }
-
-    @Override
-    public synchronized void startJob(MonitorJob monitorJob) throws Exception {
-        JobDataMap jobDataMap = monitorJobData.jobDataMap(monitorJob);
-        // 添加并启动任务
-        monitorScheduler.addJob(monitorJob, jobDataMap);
-        boolean enable = monitorJob.getEnable();
-        if (!enable) {
-            monitorJob.setEnable(true);
-            monitorJobRepository.save(monitorJob);
-        }
-    }
-
-    @Override
-    public void rescheduleJob(MonitorJob monitorJob) throws SchedulerException {
-        String jobId = monitorJob.getJobId();
-        MonitorJob jobEntity = monitorJobRepository.findByJobId(jobId);
-        if (!jobEntity.getCronExp().equals(monitorJob.getCronExp())) {
-            // 修改任务触发时间
-            monitorScheduler.rescheduleJob(jobId, monitorJob.getCronExp());
-            boolean enable = monitorJob.getEnable();
-            if (!enable) {
-                monitorJob.setEnable(true);
-            }
-        }
-
-        monitorJob.setId(jobEntity.getId());
-        monitorJob.setCreateTime(jobEntity.getCreateTime());
-        monitorJob.setUpdateTime(LocalDateTime.now());
-        monitorJobRepository.save(monitorJob);
-    }
-
-    @Override
-    public synchronized void deleteJob(String jobId) {
-        try {
-            monitorScheduler.deleteJob(jobId);
-            monitorJobRepository.deleteByJobId(jobId);
-        } catch (SchedulerException e) {
-            log.error("{}", e.getMessage());
-        }
-    }
-
-    @Override
-    public synchronized void pauseJob(String jobId) {
-        MonitorJob monitorJob = monitorJobRepository.findByJobId(jobId);
-        boolean isEnable = monitorJob.getEnable();
-        if (isEnable) {
-            monitorJob.setEnable(false);
-            try {
-                monitorScheduler.pauseJob(jobId);
-                monitorJobRepository.save(monitorJob);
-            } catch (SchedulerException e) {
-                log.error("{}", e.getMessage());
-            }
-        }
-    }
-
-    @Override
-    public synchronized void resumeJob(String jobId) {
-        MonitorJob monitorJob = monitorJobRepository.findByJobId(jobId);
-        boolean isEnable = monitorJob.getEnable();
-        if (!isEnable) {
-            monitorJob.setEnable(true);
-            try {
-                if (monitorScheduler.isJobExist(jobId)) {
-                    monitorScheduler.resumeJob(jobId);
-                } else {
-                    startJob(monitorJob);
-                }
-                monitorJobRepository.save(monitorJob);
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        }
-    }
-}

+ 0 - 73
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/job/AppHealthCheckJob.java

@@ -1,73 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.service.job;
-
-import cn.reghao.autodop.common.http.WebRequest;
-import cn.reghao.autodop.dmaster.app.db.query.config.AppConfigQuery;
-import cn.reghao.autodop.dmaster.app.model.po.AppRunning;
-import cn.reghao.autodop.dmaster.app.db.repository.AppRunningRepository;
-import cn.reghao.autodop.dmaster.monitor.db.MonitorJobCrudService;
-import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
-import cn.reghao.autodop.dmaster.notification.service.NotifyService;
-import cn.reghao.autodop.dmaster.notification.service.notifier.ding.DingMsg;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.Job;
-import org.quartz.JobDataMap;
-import org.quartz.JobDetail;
-import org.quartz.JobExecutionContext;
-
-import java.time.LocalDateTime;
-import java.util.List;
-
-/**
- * 应用健康检查任务
- * 发送 appDeploy 事件前停止任务
- * 接收 appDeployResult 事件后添加(若是第一次部署)并启动任务
- *
- * 发送 appRestart 事件前停止任务
- * 接收 appRestartResult 事件后启动任务
- *
- * 发送 appStop 事件前停止任务
- * 接收 appStartResult 事件后启动任务
- *
- * @author reghao
- * @date 2021-06-22 19:04:10
- */
-@Slf4j
-public class AppHealthCheckJob implements Job {
-    @Override
-    public void execute(JobExecutionContext context) {
-        JobDetail jobDetail = context.getJobDetail();
-        JobDataMap jobDataMap = jobDetail.getJobDataMap();
-        String jobId = jobDetail.getKey().getName();
-
-        NotifyService notifyService = (NotifyService) jobDataMap.get("notifyService");
-        MonitorJobCrudService jobCrudService = (MonitorJobCrudService) jobDataMap.get("jobCrudService");
-        AppRunningRepository runningRepository = (AppRunningRepository) jobDataMap.get("runningRepository");
-        AppConfigQuery appConfigQuery = (AppConfigQuery) jobDataMap.get("appQuery");
-        WebRequest webRequest = (WebRequest) jobDataMap.get("webRequest");
-        String appId = jobDataMap.getString("appId");
-        String machineId = jobDataMap.getString("machineId");
-
-        List<NotifyGroup> notifyGroups = appConfigQuery.findByAppId(appId).getNotifyGroups();
-
-        AppRunning appRunning = runningRepository.findByAppIdAndMachineId(appId, machineId);
-        String machineIpv4 = appRunning.getMachineIpv4();
-        int httpPort = appRunning.getHttpPort();
-        String healthCheck = appRunning.getHealthCheck();
-
-        String url = getHealthCheckUrl(machineIpv4, httpPort, healthCheck);
-        int statusCode = webRequest.head(url);
-        if (statusCode != 200) {
-            String msg = String.format("%s 机器上的 %s 应用健康检查失败", machineIpv4, appId);
-            DingMsg dingMsg = new DingMsg("监控报警", msg);
-            notifyGroups.forEach(notifyGroup -> notifyService.notify(notifyGroup, dingMsg));
-        } else {
-            appRunning.setLastCheck(LocalDateTime.now());
-            runningRepository.save(appRunning);
-        }
-    }
-
-    private String getHealthCheckUrl(String machineIpv4, int httpPort, String healthCheck) {
-        return healthCheck.startsWith("http") ? healthCheck :
-                String.format("http://%s:%s%s", machineIpv4, httpPort, healthCheck);
-    }
-}

+ 0 - 101
dmaster/src/main/java/cn/reghao/autodop/dmaster/monitor/service/job/MachineStatCheckJob.java

@@ -1,101 +0,0 @@
-package cn.reghao.autodop.dmaster.monitor.service.job;
-
-import cn.reghao.autodop.dmaster.machine.db.crud.MachineStatCrud;
-import cn.reghao.autodop.dmaster.machine.db.query.MachineQuery;
-import cn.reghao.autodop.dmaster.machine.db.query.MachineStatQuery;
-import cn.reghao.autodop.dmaster.machine.model.po.MachineHost;
-import cn.reghao.autodop.dmaster.machine.model.po.MachineStat;
-import cn.reghao.autodop.dmaster.monitor.db.MonitorJobCrudService;
-import cn.reghao.autodop.dmaster.notification.model.po.NotifyGroup;
-import cn.reghao.autodop.dmaster.notification.service.NotifyService;
-import lombok.extern.slf4j.Slf4j;
-import org.quartz.Job;
-import org.quartz.JobDataMap;
-import org.quartz.JobDetail;
-import org.quartz.JobExecutionContext;
-
-import java.util.List;
-
-/**
- * 机器状态监控任务
- * 接收到 dagentStart 事件时添加(若 machine 是第一次注册)并启动(若不是第一次注册且存在通知组)任务
- * 接收到 dagnetShutdown 事件时停止任务
- * 删除 MachineInfo 时删除任务
- * 任务需要设置通知组后才能启用
- *
- * TODO 同一个任务是否会被多个线程同时执行?
- *
- * @author reghao
- * @date 2021-06-22 19:04:10
- */
-@Slf4j
-public class MachineStatCheckJob implements Job {
-    @Override
-    public void execute(JobExecutionContext context) {
-        JobDetail jobDetail = context.getJobDetail();
-        JobDataMap jobDataMap = jobDetail.getJobDataMap();
-        String jobId = jobDetail.getKey().getName();
-
-        NotifyService notifyService = (NotifyService) jobDataMap.get("notifyService");
-        MonitorJobCrudService jobCrudService = (MonitorJobCrudService) jobDataMap.get("jobCrudService");
-        MachineStatCrud statCrudService = (MachineStatCrud) jobDataMap.get("statCrudService");
-        MachineStatQuery statQuery = (MachineStatQuery) jobDataMap.get("statQuery");
-        MachineQuery machineQuery = (MachineQuery) jobDataMap.get("machineQuery");
-        String machineId = jobDataMap.getString("machineId");
-
-        MachineHost machineHost = machineQuery.query(machineId);
-        List<NotifyGroup> notifyGroups = machineHost.getNotifyGroups();
-        if (notifyGroups.isEmpty()) {
-            log.error("没有通知组,不执行机器状态检查任务");
-            return;
-        }
-
-        MachineStat machineStat = statQuery.queryByMachineId(machineId, 1).get(0);
-    }
-
-    private String heartbeatAlert() {
-        return null;
-    }
-
-    private String memoryUsageAlert(MachineStat machineStat) {
-        /*String machineId = machineStat.getMachineId();
-        MemoryInfo memoryInfo = machineStat.getMemoryInfo();
-        long total = memoryInfo.getTotal();
-        long avail = memoryInfo.getAvailable();
-
-        ByteConverter converter = new ByteConverter();
-        String availSize = converter.convertStr(ByteType.KiB, ByteType.MiB, avail);
-
-        double value = PercentCalculator.percentValue(avail, total);
-        String percent = PercentCalculator.percent(value);
-        double minimalPercent = 0.20;
-        if (value < minimalPercent) {
-            return String.format("%s 上可用的内存仅占内存的 %s, 共计 %s", machineId, percent, availSize);
-        } else {
-            return null;
-        }*/
-        return null;
-    }
-
-    private String diskUsageAlert(MachineStat machineStat) {
-        /*String machineId = machineStat.getMachineId();
-        List<DiskInfo> diskInfos = machineStat.getDiskInfos();
-        long total = 0, avail = 0;
-        for (DiskInfo diskInfo : diskInfos) {
-            total += diskInfo.getSize();
-            avail += diskInfo.getAvail();
-        }
-
-        ByteConverter converter = new ByteConverter();
-        String availSize = converter.convert(ByteType.Bytes, ByteType.MiB, avail) + ByteType.MiB.name();
-        double value = PercentCalculator.percentValue(avail, total);
-        String percent = PercentCalculator.percent(value);
-        double minimalPercent = 0.20;
-        if (value < minimalPercent) {
-            return String.format("%s 上可用的磁盘空间仅占总磁盘空间的 %s, 共计 %s", machineId, percent, availSize);
-        } else {
-            return null;
-        }*/
-        return null;
-    }
-}