diff --git a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/controller/MicroManagementController.java b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/controller/MicroManagementController.java index 3c4d86f2a..67c795bfb 100644 --- a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/controller/MicroManagementController.java +++ b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/controller/MicroManagementController.java @@ -177,6 +177,12 @@ public class MicroManagementController extends BaseController { return new GenericsTableDataInfo<>(microManagementService.getExceptionHandingRecordList(date)); } + @ApiOperation(value = "获取网关限流跳转参数") + @GetMapping(value = "/gateway/flowLimitingPara") + public GenericsAjaxResult getGatewayFlowLimitingPara() { + return GenericsAjaxResult.success(microManagementService.getGatewayFlowLimitingPara()); + } + @ApiOperation(value = "获取链路追踪应用列表") @GetMapping(value = "/application/linkTrackingList") public GenericsTableDataInfo getLinkTrackingList(@RequestParam(value = "applicationName", required = false) @ApiParam(value = "应用名称") String applicationName) { diff --git a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IK8sDashboardService.java b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IK8sDashboardService.java index 068381a80..21adda970 100644 --- a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IK8sDashboardService.java +++ b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IK8sDashboardService.java @@ -1,5 +1,6 @@ package com.microservices.mon.k8s.service; +import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.microservices.mon.k8s.domain.*; @@ -27,4 +28,6 @@ public interface IK8sDashboardService { List getK8sNamespaceList(); List getMetricCommonDataList(JSONObject metricResJson); + + JSONArray getSentinelAppList(); } diff --git a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IMicroManagementService.java b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IMicroManagementService.java index 500c60b3b..8d9cd9064 100644 --- a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IMicroManagementService.java +++ b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/IMicroManagementService.java @@ -55,4 +55,6 @@ public interface IMicroManagementService { List getExceptionHandingRecordList(String date); List getLinkTrackingList(String applicationName); + + JSONObject getGatewayFlowLimitingPara(); } diff --git a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/K8SDashboardServiceImpl.java b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/K8SDashboardServiceImpl.java index 52dc158c9..30d88e761 100644 --- a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/K8SDashboardServiceImpl.java +++ b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/K8SDashboardServiceImpl.java @@ -32,7 +32,7 @@ public class K8SDashboardServiceImpl extends CommonService implements IK8sDashbo @Override public List getNamespaceDetailList(boolean needPod, String search) { - return monCommonAsyncService.getNamespaceDetailList(needPod,search); + return monCommonAsyncService.getNamespaceDetailList(needPod, search); } @Override @@ -264,22 +264,17 @@ public class K8SDashboardServiceImpl extends CommonService implements IK8sDashbo break; case FLOW_CONTROL: // 处理应用流量控制功能相关逻辑 - JSONObject sentinelAppList = remoteGatewayService.getSentinelAppList(SecurityContextHolder.getUserKey()); - if (sentinelAppList != null && sentinelAppList.containsKey("success") && sentinelAppList.getBoolean("success")) { - JSONArray sentinelAppListArray = sentinelAppList.getJSONArray("data"); - if (sentinelAppListArray != null && !sentinelAppList.getJSONArray("data").isEmpty()) { - for (int i = 0; i < sentinelAppListArray.size(); i++) { - JSONObject sentinelApp = sentinelAppListArray.getJSONObject(i); - if (k8sLabelValue.equals(sentinelApp.getString("app"))) { - applicationFunction = new ApplicationFunction(); - applicationFunction.setKeyAndName(applicationFunctionType); - functionVariables = new JSONObject(); - functionVariables.put("app", k8sLabelValue); - functionVariables.put("appType", sentinelApp.getLongValue("appType")); - applicationFunction.setVariables(functionVariables); - applicationFunctionsList.add(applicationFunction); - } - } + JSONArray sentinelAppListArray = getSentinelAppList(); + for (int i = 0; i < sentinelAppListArray.size(); i++) { + JSONObject sentinelApp = sentinelAppListArray.getJSONObject(i); + if (k8sLabelValue.equals(sentinelApp.getString("app"))) { + applicationFunction = new ApplicationFunction(); + applicationFunction.setKeyAndName(applicationFunctionType); + functionVariables = new JSONObject(); + functionVariables.put("app", k8sLabelValue); + functionVariables.put("appType", sentinelApp.getLongValue("appType")); + applicationFunction.setVariables(functionVariables); + applicationFunctionsList.add(applicationFunction); } } break; @@ -352,4 +347,16 @@ public class K8SDashboardServiceImpl extends CommonService implements IK8sDashbo } return metricCommonDataList; } + + @Override + public JSONArray getSentinelAppList() { + JSONObject sentinelAppList = remoteGatewayService.getSentinelAppList(SecurityContextHolder.getUserKey()); + if (sentinelAppList != null && sentinelAppList.containsKey("success") && sentinelAppList.getBoolean("success")) { + JSONArray sentinelAppListArray = sentinelAppList.getJSONArray("data"); + if (sentinelAppListArray != null && !sentinelAppList.getJSONArray("data").isEmpty()) { + return sentinelAppListArray; + } + } + return new JSONArray(); + } } diff --git a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/MicroManagementServiceImpl.java b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/MicroManagementServiceImpl.java index 59f5317ba..07981f8fd 100644 --- a/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/MicroManagementServiceImpl.java +++ b/microservices-modules/microservices-modules-mon/src/main/java/com/microservices/mon/k8s/service/impl/MicroManagementServiceImpl.java @@ -13,6 +13,7 @@ import com.microservices.common.core.utils.DateUtils; import com.microservices.common.core.utils.StringUtils; import com.microservices.mon.k8s.domain.*; import com.microservices.mon.k8s.domain.vo.*; +import com.microservices.mon.k8s.service.IK8sDashboardService; import com.microservices.mon.k8s.service.IMicroManagementService; import com.microservices.mon.k8s.service.IMonCommonAsyncService; import com.microservices.mon.k8s.utils.RancherResponseHandler; @@ -24,6 +25,7 @@ import com.microservices.system.api.utils.FeignUtils; import feign.Response; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.yaml.snakeyaml.Yaml; @@ -41,6 +43,9 @@ public class MicroManagementServiceImpl extends CommonService implements IMicroM @Autowired private IMonCommonAsyncService monCommonAsyncService; @Autowired + @Lazy + private IK8sDashboardService dashboardService; + @Autowired private RemoteRancherService remoteRancherService; @Autowired private RemoteGatewayService remoteGatewayService; @@ -673,6 +678,21 @@ public class MicroManagementServiceImpl extends CommonService implements IMicroM return linkTrackingApplicationList; } + @Override + public JSONObject getGatewayFlowLimitingPara() { + JSONObject gatewayFlowLimitingPara = new JSONObject(); + JSONArray sentinelAppListArray = dashboardService.getSentinelAppList(); + for (int i = 0; i < sentinelAppListArray.size(); i++) { + JSONObject sentinelApp = sentinelAppListArray.getJSONObject(i); + if (sentinelApp.getLongValue("appType") == 11) { + gatewayFlowLimitingPara.put("app", sentinelApp.getString("app")); + gatewayFlowLimitingPara.put("appType", sentinelApp.getLongValue("appType")); + return gatewayFlowLimitingPara; + } + } + return gatewayFlowLimitingPara; + } + /** * 根据传入的环境变量列表,生成并更新容器对象的 env 与 envFrom 字段。 *