|
@@ -6,8 +6,6 @@ import cn.reghao.autodop.common.amqp.RpcResult;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.AppOps;
|
|
import cn.reghao.autodop.common.dagent.app.api.AppOps;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.AppIdArgs;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.AppIdArgs;
|
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.AppLogArgs;
|
|
import cn.reghao.autodop.common.dagent.app.api.data.log.AppLogArgs;
|
|
|
-import cn.reghao.autodop.common.dagent.app.api.data.log.LogLevel;
|
|
|
|
|
-import cn.reghao.autodop.common.dagent.app.api.data.log.LogType;
|
|
|
|
|
import cn.reghao.autodop.common.utils.serializer.JsonArrayDeserializer;
|
|
import cn.reghao.autodop.common.utils.serializer.JsonArrayDeserializer;
|
|
|
import cn.reghao.autodop.common.utils.serializer.JsonConverter;
|
|
import cn.reghao.autodop.common.utils.serializer.JsonConverter;
|
|
|
import cn.reghao.autodop.dmaster.app.cache.BuildDeployCache;
|
|
import cn.reghao.autodop.dmaster.app.cache.BuildDeployCache;
|
|
@@ -16,7 +14,7 @@ import cn.reghao.autodop.dmaster.app.entity.deploy.DeployConfig;
|
|
|
import cn.reghao.autodop.dmaster.app.entity.deploy.LogConfig;
|
|
import cn.reghao.autodop.dmaster.app.entity.deploy.LogConfig;
|
|
|
import cn.reghao.autodop.dmaster.app.entity.log.AppStatus;
|
|
import cn.reghao.autodop.dmaster.app.entity.log.AppStatus;
|
|
|
import cn.reghao.autodop.dmaster.app.service.crud.log.AppStatusCrudService;
|
|
import cn.reghao.autodop.dmaster.app.service.crud.log.AppStatusCrudService;
|
|
|
-import cn.reghao.autodop.dmaster.app.vo.LogFile;
|
|
|
|
|
|
|
+import cn.reghao.autodop.common.dagent.app.api.data.log.LogFile;
|
|
|
import cn.reghao.autodop.dmaster.common.db.PageList;
|
|
import cn.reghao.autodop.dmaster.common.db.PageList;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
@@ -45,66 +43,56 @@ public class AppStatusService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public PageList<AppStatus> deployedAppStatus(int page, int size, String env) {
|
|
public PageList<AppStatus> deployedAppStatus(int page, int size, String env) {
|
|
|
- PageList<AppStatus> pageList = statusCrudService.getByPage(page, size);
|
|
|
|
|
|
|
+ PageList<AppStatus> pageList = statusCrudService.getByPage(page, size, env);
|
|
|
return pageList;
|
|
return pageList;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 日志文件列表
|
|
|
|
|
|
|
+ * 获取应用日志文件列表
|
|
|
*
|
|
*
|
|
|
* @param
|
|
* @param
|
|
|
* @return
|
|
* @return
|
|
|
* @date 2021-02-26 上午8:23
|
|
* @date 2021-02-26 上午8:23
|
|
|
*/
|
|
*/
|
|
|
- public List<String> logFiles(String appId, String logType, String logLevel, String machineId) {
|
|
|
|
|
|
|
+ public List<LogFile> logFiles(String appId, String machineId) {
|
|
|
AppOrchestration app = cache.findByAppId(appId);
|
|
AppOrchestration app = cache.findByAppId(appId);
|
|
|
- List<LogConfig> list = app.getRunningConfig().getLogConfigs();
|
|
|
|
|
- List<LogConfig> configs = list.stream()
|
|
|
|
|
- .filter(logConfig -> logConfig.getType().equals(logType))
|
|
|
|
|
- .filter(logConfig -> logConfig.getLevel().equals(logLevel))
|
|
|
|
|
|
|
+ List<cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig> logConfigs = app.getRunningConfig().getLogConfigs()
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .filter(LogConfig::getIsDir)
|
|
|
|
|
+ .map(logConfig -> new cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig(
|
|
|
|
|
+ logConfig.getType(), logConfig.getLevel(), logConfig.getLogPath()))
|
|
|
.collect(Collectors.toList());
|
|
.collect(Collectors.toList());
|
|
|
|
|
|
|
|
- if (configs.size() != 1) {
|
|
|
|
|
- return null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- LogConfig logConfig = configs.get(0);
|
|
|
|
|
- List<MqMessage> mqMessages = new ArrayList<>();
|
|
|
|
|
- for (DeployConfig deployConfig : app.getDeployConfigs()) {
|
|
|
|
|
- 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;
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- RpcResult rpcResult = callService.call(mqMessages.get(0));
|
|
|
|
|
|
|
+ List<DeployConfig> deployConfigs = app.getDeployConfigs().stream()
|
|
|
|
|
+ .filter(deployConfig -> deployConfig.getMachineId().equals(machineId))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ DeployConfig deployConfig = deployConfigs.get(0);
|
|
|
|
|
+
|
|
|
|
|
+ AppLogArgs appLogArgs = new AppLogArgs();
|
|
|
|
|
+ appLogArgs.setPackerType(deployConfig.getPackerType());
|
|
|
|
|
+ appLogArgs.setAppId(appId);
|
|
|
|
|
+ appLogArgs.setLogConfigs(logConfigs);
|
|
|
|
|
+
|
|
|
|
|
+ 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));
|
|
|
|
|
+
|
|
|
|
|
+ RpcResult rpcResult = callService.call(mqMessage);
|
|
|
if (rpcResult.getStatusCode() == 0) {
|
|
if (rpcResult.getStatusCode() == 0) {
|
|
|
String result = rpcResult.getResult();
|
|
String result = rpcResult.getResult();
|
|
|
- JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
|
|
|
- return deserializer.fromJsonArray(result, String.class);
|
|
|
|
|
|
|
+ JsonArrayDeserializer<LogFile> deserializer = new JsonArrayDeserializer<>();
|
|
|
|
|
+ List<LogFile> logFiles = deserializer.fromJsonArray(result, LogFile.class);
|
|
|
|
|
+ return logFiles;
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- return new ArrayList<>();
|
|
|
|
|
|
|
+ return null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 日志内容
|
|
|
|
|
|
|
+ * 获取应用日志内容
|
|
|
*
|
|
*
|
|
|
* @param
|
|
* @param
|
|
|
* @return
|
|
* @return
|
|
@@ -112,6 +100,47 @@ public class AppStatusService {
|
|
|
*/
|
|
*/
|
|
|
public List<String> logContent(String appId, String logType, String logLevel, String machineId, String logFile) {
|
|
public List<String> logContent(String appId, String logType, String logLevel, String machineId, String logFile) {
|
|
|
AppOrchestration app = cache.findByAppId(appId);
|
|
AppOrchestration app = cache.findByAppId(appId);
|
|
|
|
|
+ List<LogConfig> logConfigs = app.getRunningConfig().getLogConfigs().stream()
|
|
|
|
|
+ .filter(logConfig -> logConfig.getType().equals(logType) && logConfig.getLevel().equals(logLevel))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ LogConfig logConfig = logConfigs.get(0);
|
|
|
|
|
+
|
|
|
|
|
+ cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig config =
|
|
|
|
|
+ new cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig(
|
|
|
|
|
+ logType, logLevel, logConfig.getLogPath() + "/" + logFile, false);
|
|
|
|
|
+ List<cn.reghao.autodop.common.dagent.app.api.data.log.LogConfig> configs = new ArrayList<>();
|
|
|
|
|
+ configs.add(config);
|
|
|
|
|
+
|
|
|
|
|
+ List<DeployConfig> deployConfigs = app.getDeployConfigs().stream()
|
|
|
|
|
+ .filter(deployConfig -> deployConfig.getMachineId().equals(machineId))
|
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
+ DeployConfig deployConfig = deployConfigs.get(0);
|
|
|
|
|
+
|
|
|
|
|
+ AppLogArgs appLogArgs = new AppLogArgs();
|
|
|
|
|
+ appLogArgs.setPackerType(deployConfig.getPackerType());
|
|
|
|
|
+ appLogArgs.setAppId(appId);
|
|
|
|
|
+ appLogArgs.setLogConfigs(configs);
|
|
|
|
|
+
|
|
|
|
|
+ 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));
|
|
|
|
|
+
|
|
|
|
|
+ RpcResult rpcResult = callService.call(mqMessage);
|
|
|
|
|
+ if (rpcResult.getStatusCode() == 0) {
|
|
|
|
|
+ String result = rpcResult.getResult();
|
|
|
|
|
+ JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
|
|
|
+ List<String> logContent = deserializer.fromJsonArray(result, String.class);
|
|
|
|
|
+ return logContent;
|
|
|
|
|
+ }
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private List<String> getAppLog(String appId, String logType, String logLevel, String machineId, String logFile) {
|
|
|
|
|
+ /*AppOrchestration app = cache.findByAppId(appId);
|
|
|
List<LogConfig> list = app.getRunningConfig().getLogConfigs();
|
|
List<LogConfig> list = app.getRunningConfig().getLogConfigs();
|
|
|
List<LogConfig> configs = list.stream()
|
|
List<LogConfig> configs = list.stream()
|
|
|
.filter(logConfig -> logConfig.getType().equals(logType))
|
|
.filter(logConfig -> logConfig.getType().equals(logType))
|
|
@@ -132,7 +161,11 @@ public class AppStatusService {
|
|
|
appLogArgs.setLogType(logType);
|
|
appLogArgs.setLogType(logType);
|
|
|
appLogArgs.setLogLevel(logLevel);
|
|
appLogArgs.setLogLevel(logLevel);
|
|
|
appLogArgs.setLogFile(true);
|
|
appLogArgs.setLogFile(true);
|
|
|
- appLogArgs.setLogPath(logConfig.getLogPath() + "/" + logFile);
|
|
|
|
|
|
|
+ if (logFile != null) {
|
|
|
|
|
+ appLogArgs.setLogPath(logConfig.getLogPath() + "/" + logFile);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ appLogArgs.setLogPath(logConfig.getLogPath());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
MqMessage mqMessage = new MqMessage();
|
|
MqMessage mqMessage = new MqMessage();
|
|
|
mqMessage.setMachineId(deployConfig.getMachineId());
|
|
mqMessage.setMachineId(deployConfig.getMachineId());
|
|
@@ -153,7 +186,7 @@ public class AppStatusService {
|
|
|
JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
JsonArrayDeserializer<String> deserializer = new JsonArrayDeserializer<>();
|
|
|
return deserializer.fromJsonArray(result, String.class);
|
|
return deserializer.fromJsonArray(result, String.class);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+*/
|
|
|
return new ArrayList<>();
|
|
return new ArrayList<>();
|
|
|
}
|
|
}
|
|
|
|
|
|