From d376779cd638618056c8181017e5854940da8220 Mon Sep 17 00:00:00 2001 From: chenzhihang <709011834@qq.com> Date: Fri, 28 Feb 2025 16:54:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=B6=85=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E5=AF=BB=E4=BC=98=E5=AE=9E=E9=AA=8C=E5=8A=9F=E8=83=BD=E5=BC=80?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ray/RayInsController.java | 8 ++++++ .../ruoyi/platform/service/RayInsService.java | 2 ++ .../service/impl/RayInsServiceImpl.java | 27 ++++++++++++++++--- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/ray/RayInsController.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/ray/RayInsController.java index 1a358418..c13354a3 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/ray/RayInsController.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/controller/ray/RayInsController.java @@ -6,6 +6,7 @@ import com.ruoyi.platform.domain.RayIns; import com.ruoyi.platform.service.RayInsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import org.springframework.web.bind.annotation.*; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -57,4 +58,11 @@ public class RayInsController extends BaseController { public GenericsAjaxResult getDetailById(@PathVariable("id") Long id) throws Exception { return genericsSuccess(this.rayInsService.getDetailById(id)); } + + @PostMapping("/getExpMetrics") + @ApiOperation("获取当前实验的指标对比地址") + @ApiResponse + public GenericsAjaxResult getExpMetrics(@RequestBody String trailIds) throws Exception { + return genericsSuccess(rayInsService.getExpMetrics(trailIds)); + } } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/RayInsService.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/RayInsService.java index 391b112f..42da3ec2 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/RayInsService.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/RayInsService.java @@ -22,4 +22,6 @@ public interface RayInsService { RayIns queryStatusFromArgo(RayIns ins); List queryByRayInsIsNotTerminated(); + + String getExpMetrics(String trailIds) throws Exception; } diff --git a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java index 8ff9b06d..8c81cb9a 100644 --- a/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java +++ b/ruoyi-modules/management-platform/src/main/java/com/ruoyi/platform/service/impl/RayInsServiceImpl.java @@ -6,10 +6,7 @@ import com.ruoyi.platform.domain.RayIns; import com.ruoyi.platform.mapper.RayDao; import com.ruoyi.platform.mapper.RayInsDao; import com.ruoyi.platform.service.RayInsService; -import com.ruoyi.platform.utils.DateUtils; -import com.ruoyi.platform.utils.HttpUtils; -import com.ruoyi.platform.utils.JsonUtils; -import com.ruoyi.platform.utils.MinioUtil; +import com.ruoyi.platform.utils.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,6 +18,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.IOException; +import java.net.URLEncoder; import java.nio.file.Path; import java.nio.file.Paths; import java.util.*; @@ -39,6 +37,11 @@ public class RayInsServiceImpl implements RayInsService { @Value("${minio.endpointIp}") String endpoint; + @Value("${aim.url}") + private String aimUrl; + @Value("${aim.proxyUrl}") + private String aimProxyUrl; + @Resource private RayInsDao rayInsDao; @@ -269,6 +272,22 @@ public class RayInsServiceImpl implements RayInsService { return rayInsDao.queryByRayInsIsNotTerminated(); } + @Override + public String getExpMetrics(String trailIds) throws Exception { + String encodedUrlString = URLEncoder.encode("run.trial_id in " + trailIds, "UTF-8"); + String url = aimProxyUrl + "/api/runs/search/run?query=" + encodedUrlString; + String s = HttpUtils.sendGet(url, null); + List> responses = JacksonUtil.parseJSONStr2MapList(s); + + List runIds = new ArrayList<>(); + for (Map response:responses) { + runIds.add((String)response.get("run_hash")); + } + + String decode = AIM64EncoderUtil.decode(runIds); + return aimUrl + "/metrics?select=" + decode; + } + public void getTrialList(RayIns rayIns) throws Exception { // 获取指定路径下的所有文件 String directoryPath = rayIns.getResultPath();