You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@seatunnel.apache.org by ki...@apache.org on 2022/09/06 14:26:44 UTC
[incubator-seatunnel] branch dev updated: [seatunnel-1947][seatunnel-server] add query log (#2614)
This is an automated email from the ASF dual-hosted git repository.
kirs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-seatunnel.git
The following commit(s) were added to refs/heads/dev by this push:
new 7a5135b98 [seatunnel-1947][seatunnel-server] add query log (#2614)
7a5135b98 is described below
commit 7a5135b98f134a6d5ba926bf75f27dd754876f8b
Author: dijie <nj...@gmail.com>
AuthorDate: Tue Sep 6 22:26:37 2022 +0800
[seatunnel-1947][seatunnel-server] add query log (#2614)
---
.../seatunnel/app/controller/TaskController.java | 7 ++++
.../app/domain/request/task/InstanceLogRes.java} | 16 +++++----
.../apache/seatunnel/app/service/ITaskService.java | 3 ++
.../app/service/impl/TaskServiceImpl.java | 12 +++++++
.../dolphinscheduler/IDolphinschedulerService.java | 3 ++
.../constants/DolphinschedulerConstants.java | 3 ++
.../impl/DolphinschedulerServiceImpl.java | 39 ++++++++++++----------
.../dolphinscheduler/impl/InstanceServiceImpl.java | 6 ++++
.../seatunnel/spi/scheduler/IInstanceService.java | 3 ++
.../spi/scheduler/dto/InstanceLogDto.java | 5 +--
10 files changed, 70 insertions(+), 27 deletions(-)
diff --git a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskController.java b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskController.java
index 68edd6052..2c63edd36 100644
--- a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskController.java
+++ b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/controller/TaskController.java
@@ -20,6 +20,7 @@ package org.apache.seatunnel.app.controller;
import org.apache.seatunnel.app.common.Result;
import org.apache.seatunnel.app.domain.request.task.ExecuteReq;
import org.apache.seatunnel.app.domain.request.task.InstanceListReq;
+import org.apache.seatunnel.app.domain.request.task.InstanceLogRes;
import org.apache.seatunnel.app.domain.request.task.JobListReq;
import org.apache.seatunnel.app.domain.request.task.RecycleScriptReq;
import org.apache.seatunnel.app.domain.response.PageInfo;
@@ -71,6 +72,12 @@ public class TaskController {
return Result.success(iTaskService.tmpExecute(req));
}
+ @GetMapping("/queryInstanceLog")
+ @ApiOperation(value = "query instance log", httpMethod = "GET")
+ Result<InstanceLogRes> queryInstanceLog(@RequestParam long taskInstanceId) {
+ return Result.success(iTaskService.queryInstanceLog(taskInstanceId));
+ }
+
@PostMapping("/kill")
@ApiOperation(value = "kill running instance", httpMethod = "POST")
Result<Void> kill(@RequestParam Long instanceId) {
diff --git a/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/request/task/InstanceLogRes.java
similarity index 69%
copy from seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java
copy to seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/request/task/InstanceLogRes.java
index f2ddc77f5..60d371b02 100644
--- a/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java
+++ b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/domain/request/task/InstanceLogRes.java
@@ -15,16 +15,20 @@
* limitations under the License.
*/
-package org.apache.seatunnel.spi.scheduler.dto;
+package org.apache.seatunnel.app.domain.request.task;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
-@Builder
@Data
-public class InstanceLogDto {
+@ApiModel(value = "instanceLogRes", description = "instance log")
+@Builder
+public class InstanceLogRes {
+ @ApiModelProperty(value = "instance id", dataType = "long")
private long instanceId;
- private int lastSkipNum;
- private int lastLimitNum;
- private String content;
+
+ @ApiModelProperty(value = "instance id", dataType = "String")
+ private String logContent;
}
diff --git a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java
index 78960c727..f959b88e6 100644
--- a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java
+++ b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/ITaskService.java
@@ -20,6 +20,7 @@ package org.apache.seatunnel.app.service;
import org.apache.seatunnel.app.domain.dto.job.PushScriptDto;
import org.apache.seatunnel.app.domain.request.task.ExecuteReq;
import org.apache.seatunnel.app.domain.request.task.InstanceListReq;
+import org.apache.seatunnel.app.domain.request.task.InstanceLogRes;
import org.apache.seatunnel.app.domain.request.task.JobListReq;
import org.apache.seatunnel.app.domain.request.task.RecycleScriptReq;
import org.apache.seatunnel.app.domain.response.PageInfo;
@@ -37,5 +38,7 @@ public interface ITaskService {
InstanceSimpleInfoRes tmpExecute(ExecuteReq req);
+ InstanceLogRes queryInstanceLog(long instanceId);
+
void kill(Long instanceId);
}
diff --git a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java
index b12d8c2b7..9b25779b7 100644
--- a/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java
+++ b/seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/TaskServiceImpl.java
@@ -36,6 +36,7 @@ import org.apache.seatunnel.app.domain.dto.job.PushScriptDto;
import org.apache.seatunnel.app.domain.dto.job.ScriptJobApplyDto;
import org.apache.seatunnel.app.domain.request.task.ExecuteReq;
import org.apache.seatunnel.app.domain.request.task.InstanceListReq;
+import org.apache.seatunnel.app.domain.request.task.InstanceLogRes;
import org.apache.seatunnel.app.domain.request.task.JobListReq;
import org.apache.seatunnel.app.domain.request.task.RecycleScriptReq;
import org.apache.seatunnel.app.domain.response.PageInfo;
@@ -49,6 +50,7 @@ import org.apache.seatunnel.spi.scheduler.IJobService;
import org.apache.seatunnel.spi.scheduler.dto.ExecuteDto;
import org.apache.seatunnel.spi.scheduler.dto.InstanceDto;
import org.apache.seatunnel.spi.scheduler.dto.InstanceListDto;
+import org.apache.seatunnel.spi.scheduler.dto.InstanceLogDto;
import org.apache.seatunnel.spi.scheduler.dto.JobDto;
import org.apache.seatunnel.spi.scheduler.dto.JobListDto;
import org.apache.seatunnel.spi.scheduler.dto.JobSimpleInfoDto;
@@ -224,6 +226,16 @@ public class TaskServiceImpl implements ITaskService {
return this.translate(iJobService.execute(dto));
}
+ @Override
+ public InstanceLogRes queryInstanceLog(long instanceId) {
+ final InstanceLogDto dto = iInstanceService.queryInstanceLog(instanceId);
+
+ return InstanceLogRes.builder()
+ .instanceId(instanceId)
+ .logContent(dto.getLogContent())
+ .build();
+ }
+
@Override
public void kill(Long instanceId) {
iJobService.kill(instanceId);
diff --git a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/IDolphinschedulerService.java b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/IDolphinschedulerService.java
index 8085a69ad..2320da9ad 100644
--- a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/IDolphinschedulerService.java
+++ b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/IDolphinschedulerService.java
@@ -26,6 +26,7 @@ import org.apache.seatunnel.scheduler.dolphinscheduler.dto.StartProcessDefinitio
import org.apache.seatunnel.scheduler.dolphinscheduler.dto.TaskInstanceDto;
import org.apache.seatunnel.scheduler.dolphinscheduler.dto.UpdateProcessDefinitionDto;
import org.apache.seatunnel.server.common.PageData;
+import org.apache.seatunnel.spi.scheduler.dto.InstanceLogDto;
import org.apache.seatunnel.spi.scheduler.dto.JobDto;
import java.util.List;
@@ -58,5 +59,7 @@ public interface IDolphinschedulerService {
void deleteProcessDefinition(long code);
+ InstanceLogDto queryInstanceLog(long instanceId);
+
void killProcessInstance(long processInstanceId);
}
diff --git a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/constants/DolphinschedulerConstants.java b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/constants/DolphinschedulerConstants.java
index d6733a3b9..2c19d7571 100644
--- a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/constants/DolphinschedulerConstants.java
+++ b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/constants/DolphinschedulerConstants.java
@@ -170,6 +170,8 @@ public class DolphinschedulerConstants {
public static final String DEPENDENT_MODE_DEFAULT = "OFF_MODE";
public static final String PROCESS_INSTANCE_ID = "processInstanceId";
public static final String EXECUTE_TYPE = "executeType";
+ public static final int LOG_SKIP_LINE_NUM_DEFAULT = 0;
+ public static final int LOG_LIMIT_NUM_DEFAULT = Integer.MAX_VALUE;
/**
* response param
@@ -180,4 +182,5 @@ public class DolphinschedulerConstants {
public static final String CODE = "code";
public static final int CODE_SUCCESS = 0;
public static final String MSG = "msg";
+ public static final String LOG_MESSAGE = "message";
}
diff --git a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/DolphinschedulerServiceImpl.java b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/DolphinschedulerServiceImpl.java
index d4de2383f..9c07fe8a2 100644
--- a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/DolphinschedulerServiceImpl.java
+++ b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/DolphinschedulerServiceImpl.java
@@ -51,7 +51,10 @@ import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.Dolphins
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOCATIONS_Y_DEFAULT;
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOG_DETAIL;
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOG_LIMIT_NUM;
+import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOG_LIMIT_NUM_DEFAULT;
+import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOG_MESSAGE;
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOG_SKIP_LINE_NUM;
+import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.LOG_SKIP_LINE_NUM_DEFAULT;
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.MSG;
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.ONLINE_CREATE_RESOURCE;
import static org.apache.seatunnel.scheduler.dolphinscheduler.constants.DolphinschedulerConstants.PAGE_NO;
@@ -451,6 +454,25 @@ public class DolphinschedulerServiceImpl implements IDolphinschedulerService, In
execute(processInstanceId, ExecuteTypeEnum.STOP);
}
+ @Override
+ public InstanceLogDto queryInstanceLog(long instanceId) {
+
+ final Map result = HttpUtils.builder()
+ .withUrl(apiPrefix.concat(LOG_DETAIL))
+ .withData(createParamMap(TASK_INSTANCE_ID, instanceId, LOG_SKIP_LINE_NUM, LOG_SKIP_LINE_NUM_DEFAULT, LOG_LIMIT_NUM, LOG_LIMIT_NUM_DEFAULT))
+ .withMethod(Connection.Method.GET)
+ .withToken(TOKEN, token)
+ .execute(Map.class);
+ checkResult(result, false);
+
+ final Map map = MapUtils.getMap(result, DATA);
+ final String logContent = MapUtils.getString(map, LOG_MESSAGE);
+
+ return InstanceLogDto.builder()
+ .logContent(logContent)
+ .build();
+ }
+
private ProjectDto queryProjectCodeByName(String projectName) throws IOException {
final Map result = HttpUtils.builder()
.withUrl(apiPrefix.concat(QUERY_PROJECT_LIST_PAGING))
@@ -599,23 +621,6 @@ public class DolphinschedulerServiceImpl implements IDolphinschedulerService, In
return this.mapToPojo(map, ResourceDto.class);
}
- public InstanceLogDto getInstanceLog(long instanceId, int skipNum, int limitNum) {
- final Map result = HttpUtils.builder()
- .withUrl(apiPrefix.concat(LOG_DETAIL))
- .withMethod(Connection.Method.GET)
- .withData(createParamMap(TASK_INSTANCE_ID, instanceId, LOG_SKIP_LINE_NUM, skipNum, LOG_LIMIT_NUM, limitNum))
- .withToken(TOKEN, token)
- .execute(Map.class);
- checkResult(result, false);
- final String logContent = MapUtils.getString(result, DATA);
- return InstanceLogDto.builder()
- .lastSkipNum(skipNum)
- .lastLimitNum(limitNum)
- .instanceId(instanceId)
- .content(logContent)
- .build();
- }
-
private int checkResult(Map result, boolean ignore) {
final int intValue = MapUtils.getIntValue(result, CODE, -1);
if (!ignore && CODE_SUCCESS != intValue) {
diff --git a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/InstanceServiceImpl.java b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/InstanceServiceImpl.java
index ff295d8dd..95639809f 100644
--- a/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/InstanceServiceImpl.java
+++ b/seatunnel-server/seatunnel-scheduler/seatunnel-scheduler-dolphinscheduler/src/main/java/org/apache/seatunnel/scheduler/dolphinscheduler/impl/InstanceServiceImpl.java
@@ -24,6 +24,7 @@ import org.apache.seatunnel.server.common.PageData;
import org.apache.seatunnel.spi.scheduler.IInstanceService;
import org.apache.seatunnel.spi.scheduler.dto.InstanceDto;
import org.apache.seatunnel.spi.scheduler.dto.InstanceListDto;
+import org.apache.seatunnel.spi.scheduler.dto.InstanceLogDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -64,4 +65,9 @@ public class InstanceServiceImpl implements IInstanceService {
.build()).collect(Collectors.toList());
return new PageData<>(instancePageData.getTotalCount(), data);
}
+
+ @Override
+ public InstanceLogDto queryInstanceLog(long instanceId) {
+ return iDolphinschedulerService.queryInstanceLog(instanceId);
+ }
}
diff --git a/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/IInstanceService.java b/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/IInstanceService.java
index ab7f6ddc3..dad0ee4e9 100644
--- a/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/IInstanceService.java
+++ b/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/IInstanceService.java
@@ -20,7 +20,10 @@ package org.apache.seatunnel.spi.scheduler;
import org.apache.seatunnel.server.common.PageData;
import org.apache.seatunnel.spi.scheduler.dto.InstanceDto;
import org.apache.seatunnel.spi.scheduler.dto.InstanceListDto;
+import org.apache.seatunnel.spi.scheduler.dto.InstanceLogDto;
public interface IInstanceService {
PageData<InstanceDto> list(InstanceListDto dto);
+
+ InstanceLogDto queryInstanceLog(long instanceId);
}
diff --git a/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java b/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java
index f2ddc77f5..9a16b112b 100644
--- a/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java
+++ b/seatunnel-server/seatunnel-spi/src/main/java/org/apache/seatunnel/spi/scheduler/dto/InstanceLogDto.java
@@ -23,8 +23,5 @@ import lombok.Data;
@Builder
@Data
public class InstanceLogDto {
- private long instanceId;
- private int lastSkipNum;
- private int lastLimitNum;
- private String content;
+ private String logContent;
}