|
@@ -12,6 +12,7 @@ import org.apache.sshd.client.SshClient;
|
|
|
import org.apache.sshd.client.session.ClientSession;
|
|
|
import org.dom4j.DocumentException;
|
|
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -33,57 +34,60 @@ public class MyScheduler {
|
|
|
SystemServerManager systemServerManager;
|
|
|
|
|
|
|
|
|
- // @Scheduled(fixedDelay = 60 * 60 * 1000)
|
|
|
- //@Scheduled(fixedDelay = 2 * 1000)
|
|
|
- public void server() throws IOException, InterruptedException, DocumentException {
|
|
|
- List<SystemServerPO> systemServerPOList = new ArrayList<>();
|
|
|
- for (Host host : hostList) {
|
|
|
- int taskNumber = 0;
|
|
|
- SshClient sshClient = SshClient.setUpDefaultClient();
|
|
|
- String ip = host.getHostname();
|
|
|
- Integer port = host.getPort();
|
|
|
- String username = host.getUsername();
|
|
|
- String password = host.getPassword();
|
|
|
- String type = host.getType();
|
|
|
- ClientSession session = SshUtil.getSession(sshClient, ip, username, password);
|
|
|
- double gpuUsage = 0.0;
|
|
|
- long gpuTotal = 0L;
|
|
|
- if ("gpu".equals(type)) {
|
|
|
- gpuUsage = SshUtil.gpuUsage(session);
|
|
|
- gpuTotal = SshUtil.gpuTotal(session);
|
|
|
- String podList = SshUtil.execute(session, "kubectl get pod | grep project");
|
|
|
- taskNumber = StringUtil.countSubString(podList, "project");
|
|
|
- }
|
|
|
+ @Scheduled(fixedDelay = 60 * 1000)
|
|
|
+ public void server() {
|
|
|
+ try {
|
|
|
+ List<SystemServerPO> systemServerPOList = new ArrayList<>();
|
|
|
+ log.info("server() 服务器列表为:"+hostList);
|
|
|
+ for (Host host : hostList) {
|
|
|
+ int taskNumber = 0;
|
|
|
+ SshClient sshClient = SshClient.setUpDefaultClient();
|
|
|
+ String ip = host.getHostname();
|
|
|
+ String username = host.getUsername();
|
|
|
+ String password = host.getPassword();
|
|
|
+ String type = host.getType();
|
|
|
+ ClientSession session = SshUtil.getSession(sshClient, ip, username, password);
|
|
|
+ double gpuUsage = 0.0;
|
|
|
+ long gpuTotal = 0L;
|
|
|
+ if ("gpu".equals(type)) {
|
|
|
+ gpuUsage = SshUtil.gpuUsage(session);
|
|
|
+ gpuTotal = SshUtil.gpuTotal(session);
|
|
|
+ String podList = SshUtil.execute(session, "kubectl get pod | grep project");
|
|
|
+ taskNumber = StringUtil.countSubString(podList, "project");
|
|
|
+ }
|
|
|
|
|
|
- SystemServerPO systemServerPO = SystemServerPO.builder()
|
|
|
- .id(StringUtil.getRandomUUID())
|
|
|
- .serverId(SshUtil.hostname(session))
|
|
|
- .serverAddress(ip)
|
|
|
- .serverType(type)
|
|
|
- .memoryUsage(SshUtil.memoryUsage(session))
|
|
|
- .memoryAvailable(SshUtil.memoryAvailable(session))
|
|
|
- .memoryTotal(SshUtil.memoryTotal(session))
|
|
|
- .diskUsage(SshUtil.diskUsage(session))
|
|
|
- .diskAvailable(SshUtil.diskAvailable(session))
|
|
|
- .diskTotal(SshUtil.diskTotal(session))
|
|
|
- .cpuUsage(SshUtil.cpuUsage(session))
|
|
|
- .cpuTotal(SshUtil.cpuTotal(session))
|
|
|
- .gpuUsage(gpuUsage)
|
|
|
- .gpuTotal(gpuTotal)
|
|
|
- .taskNumber(taskNumber)
|
|
|
- .build();
|
|
|
- systemServerPO.setCreateTime(TimeUtil.getNowForMysql());
|
|
|
- systemServerPO.setCreateUserId("simulation-resource-monitor");
|
|
|
- systemServerPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
- systemServerPO.setModifyUserId("simulation-resource-monitor");
|
|
|
- systemServerPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
- systemServerPO.setIsDeleted("0");
|
|
|
- systemServerPOList.add(systemServerPO);
|
|
|
- session.close();
|
|
|
- sshClient.stop();
|
|
|
+ SystemServerPO systemServerPO = SystemServerPO.builder()
|
|
|
+ .id(StringUtil.getRandomUUID())
|
|
|
+ .serverId(SshUtil.hostname(session))
|
|
|
+ .serverAddress(ip)
|
|
|
+ .serverType(type)
|
|
|
+ .memoryUsage(SshUtil.memoryUsage(session))
|
|
|
+ .memoryAvailable(SshUtil.memoryAvailable(session))
|
|
|
+ .memoryTotal(SshUtil.memoryTotal(session))
|
|
|
+ .diskUsage(SshUtil.diskUsage(session))
|
|
|
+ .diskAvailable(SshUtil.diskAvailable(session))
|
|
|
+ .diskTotal(SshUtil.diskTotal(session))
|
|
|
+ .cpuUsage(SshUtil.cpuUsage(session))
|
|
|
+ .cpuTotal(SshUtil.cpuTotal(session))
|
|
|
+ .gpuUsage(gpuUsage)
|
|
|
+ .gpuTotal(gpuTotal)
|
|
|
+ .taskNumber(taskNumber)
|
|
|
+ .build();
|
|
|
+ systemServerPO.setCreateTime(TimeUtil.getNowForMysql());
|
|
|
+ systemServerPO.setCreateUserId("simulation-resource-monitor");
|
|
|
+ systemServerPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
+ systemServerPO.setModifyUserId("simulation-resource-monitor");
|
|
|
+ systemServerPO.setModifyTime(TimeUtil.getNowForMysql());
|
|
|
+ systemServerPO.setIsDeleted("0");
|
|
|
+ systemServerPOList.add(systemServerPO);
|
|
|
+ session.close();
|
|
|
+ sshClient.stop();
|
|
|
+ }
|
|
|
+ log.info("MyScheduler-------server 获取服务器信息!" + systemServerPOList);
|
|
|
+ systemServerManager.deleteAndInsert(systemServerPOList);
|
|
|
+ } catch (IOException | DocumentException | InterruptedException e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
}
|
|
|
- log.info("MyScheduler-------server 获取服务器信息!" + systemServerPOList);
|
|
|
- systemServerManager.replace(systemServerPOList);
|
|
|
|
|
|
}
|
|
|
|