|
|
@@ -24,6 +24,7 @@ import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 应用状态管理
|
|
|
@@ -48,72 +49,112 @@ public class AppStatusService {
|
|
|
return pageList;
|
|
|
}
|
|
|
|
|
|
- public List<LogFile> logFiles(String appId) {
|
|
|
+ /**
|
|
|
+ * 日志文件列表
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @date 2021-02-26 上午8:23
|
|
|
+ */
|
|
|
+ public List<String> logFiles(String appId, String logType, String logLevel, String machineId) {
|
|
|
AppOrchestration app = cache.findByAppId(appId);
|
|
|
- List<LogConfig> logs = app.getRunningConfig().getLogs();
|
|
|
+ List<LogConfig> list = app.getRunningConfig().getLogConfigs();
|
|
|
+ List<LogConfig> configs = list.stream()
|
|
|
+ .filter(logConfig -> logConfig.getType().equals(logType))
|
|
|
+ .filter(logConfig -> logConfig.getLevel().equals(logLevel))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (configs.size() != 1) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
+ LogConfig logConfig = configs.get(0);
|
|
|
List<MqMessage> mqMessages = new ArrayList<>();
|
|
|
for (DeployConfig deployConfig : app.getDeployConfigs()) {
|
|
|
- AppLogArgs appLogArgs = new AppLogArgs();
|
|
|
- appLogArgs.setPackerType(deployConfig.getPackerType());
|
|
|
- appLogArgs.setAppId(appId);
|
|
|
- appLogArgs.setLogType(LogType.console.name());
|
|
|
- appLogArgs.setLogLevel(LogLevel.info.name());
|
|
|
-
|
|
|
- MqMessage mqMessage = new MqMessage();
|
|
|
- mqMessage.setMachineId(deployConfig.getMachineId());
|
|
|
- mqMessage.setSendTime(System.currentTimeMillis());
|
|
|
- mqMessage.setRpc(true);
|
|
|
- mqMessage.setType(MessageType.appType.name());
|
|
|
- mqMessage.setOps(AppOps.appLogOps.name());
|
|
|
- mqMessage.setPayload(JsonConverter.objectToJson(appLogArgs));
|
|
|
- mqMessages.add(mqMessage);
|
|
|
+ if (deployConfig.getMachineId().equals(machineId)) {
|
|
|
+ AppLogArgs appLogArgs = new AppLogArgs();
|
|
|
+ appLogArgs.setPackerType(deployConfig.getPackerType());
|
|
|
+ appLogArgs.setAppId(appId);
|
|
|
+ appLogArgs.setLogType(logType);
|
|
|
+ appLogArgs.setLogLevel(logLevel);
|
|
|
+ appLogArgs.setLogFile(false);
|
|
|
+ appLogArgs.setLogPath(logConfig.getLogPath());
|
|
|
+
|
|
|
+ MqMessage mqMessage = new MqMessage();
|
|
|
+ mqMessage.setMachineId(deployConfig.getMachineId());
|
|
|
+ mqMessage.setSendTime(System.currentTimeMillis());
|
|
|
+ mqMessage.setRpc(true);
|
|
|
+ mqMessage.setType(MessageType.appType.name());
|
|
|
+ mqMessage.setOps(AppOps.appLogOps.name());
|
|
|
+ mqMessage.setPayload(JsonConverter.objectToJson(appLogArgs));
|
|
|
+
|
|
|
+ mqMessages.add(mqMessage);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- Map<String, RpcResult> rpcResultMap = callService.call(mqMessages);
|
|
|
- rpcResultMap.forEach((machineId, rpcResult) -> {
|
|
|
- if (rpcResult.getStatusCode() == 0) {
|
|
|
- String result = rpcResult.getResult();
|
|
|
- System.out.println();
|
|
|
- }
|
|
|
- });
|
|
|
+ RpcResult rpcResult = callService.call(mqMessages.get(0));
|
|
|
+ if (rpcResult.getStatusCode() == 0) {
|
|
|
+ String result = rpcResult.getResult();
|
|
|
+ JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
|
+ return deserializer.fromJsonArray(result, String.class);
|
|
|
+ }
|
|
|
|
|
|
- return null;
|
|
|
+ return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
- public List<String> logContent(String appId, String logType, String logLevel) {
|
|
|
+ /**
|
|
|
+ * 日志内容
|
|
|
+ *
|
|
|
+ * @param
|
|
|
+ * @return
|
|
|
+ * @date 2021-02-26 上午8:23
|
|
|
+ */
|
|
|
+ public List<String> logContent(String appId, String logType, String logLevel, String machineId, String logFile) {
|
|
|
AppOrchestration app = cache.findByAppId(appId);
|
|
|
- List<LogConfig> logs = app.getRunningConfig().getLogs();
|
|
|
+ List<LogConfig> list = app.getRunningConfig().getLogConfigs();
|
|
|
+ List<LogConfig> configs = list.stream()
|
|
|
+ .filter(logConfig -> logConfig.getType().equals(logType))
|
|
|
+ .filter(logConfig -> logConfig.getLevel().equals(logLevel))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (configs.size() != 1) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
+ LogConfig logConfig = configs.get(0);
|
|
|
List<MqMessage> mqMessages = new ArrayList<>();
|
|
|
for (DeployConfig deployConfig : app.getDeployConfigs()) {
|
|
|
- AppLogArgs appLogArgs = new AppLogArgs();
|
|
|
- appLogArgs.setPackerType(deployConfig.getPackerType());
|
|
|
- appLogArgs.setAppId(appId);
|
|
|
- appLogArgs.setLogType(LogType.console.name());
|
|
|
- appLogArgs.setLogLevel(LogLevel.info.name());
|
|
|
-
|
|
|
- MqMessage mqMessage = new MqMessage();
|
|
|
- mqMessage.setMachineId(deployConfig.getMachineId());
|
|
|
- mqMessage.setSendTime(System.currentTimeMillis());
|
|
|
- mqMessage.setRpc(true);
|
|
|
- mqMessage.setType(MessageType.appType.name());
|
|
|
- mqMessage.setOps(AppOps.appLogOps.name());
|
|
|
- mqMessage.setPayload(JsonConverter.objectToJson(appLogArgs));
|
|
|
- mqMessages.add(mqMessage);
|
|
|
+ if (deployConfig.getMachineId().equals(machineId)) {
|
|
|
+ AppLogArgs appLogArgs = new AppLogArgs();
|
|
|
+ appLogArgs.setPackerType(deployConfig.getPackerType());
|
|
|
+ appLogArgs.setAppId(appId);
|
|
|
+ appLogArgs.setLogType(logType);
|
|
|
+ appLogArgs.setLogLevel(logLevel);
|
|
|
+ appLogArgs.setLogFile(true);
|
|
|
+ appLogArgs.setLogPath(logConfig.getLogPath() + "/" + logFile);
|
|
|
+
|
|
|
+ MqMessage mqMessage = new MqMessage();
|
|
|
+ mqMessage.setMachineId(deployConfig.getMachineId());
|
|
|
+ mqMessage.setSendTime(System.currentTimeMillis());
|
|
|
+ mqMessage.setRpc(true);
|
|
|
+ mqMessage.setType(MessageType.appType.name());
|
|
|
+ mqMessage.setOps(AppOps.appLogOps.name());
|
|
|
+ mqMessage.setPayload(JsonConverter.objectToJson(appLogArgs));
|
|
|
+
|
|
|
+ mqMessages.add(mqMessage);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- Map<String, RpcResult> rpcResultMap = callService.call(mqMessages);
|
|
|
- rpcResultMap.forEach((machineId, rpcResult) -> {
|
|
|
- if (rpcResult.getStatusCode() == 0) {
|
|
|
- String result = rpcResult.getResult();
|
|
|
- JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
|
- List<String> list = deserializer.fromJsonArray(result, String.class);
|
|
|
- System.out.println();
|
|
|
- }
|
|
|
- });
|
|
|
+ RpcResult rpcResult = callService.call(mqMessages.get(0));
|
|
|
+ if (rpcResult.getStatusCode() == 0) {
|
|
|
+ String result = rpcResult.getResult();
|
|
|
+ JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
|
+ return deserializer.fromJsonArray(result, String.class);
|
|
|
+ }
|
|
|
|
|
|
- return null;
|
|
|
+ return new ArrayList<>();
|
|
|
}
|
|
|
|
|
|
public Map<String, AppStatus> appStatus(String appId) {
|