You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@inlong.apache.org by zi...@apache.org on 2022/03/23 11:34:12 UTC
[incubator-inlong] branch master updated: [INLONG-3201][TubeMQ] Improve the cluster query function
This is an automated email from the ASF dual-hosted git repository.
zirui pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-inlong.git
The following commit(s) were added to refs/heads/master by this push:
new 10f6d96 [INLONG-3201][TubeMQ] Improve the cluster query function
10f6d96 is described below
commit 10f6d96c11c38aeacfec84298c042bcc9428c913
Author: bluewang <88...@users.noreply.github.com>
AuthorDate: Wed Mar 23 19:34:05 2022 +0800
[INLONG-3201][TubeMQ] Improve the cluster query function
---
.../controller/cluster/ClusterController.java | 145 +++++++++++++++++++--
.../manager/controller/cluster/vo/ClusterVo.java | 7 +
.../group/result/ConsumerGroupInfoRes.java | 52 ++++++++
.../result/ConsumerInfoRes.java} | 12 +-
.../controller/topic/result/TopicInfoRes.java | 56 ++++++++
.../controller/topic/result/TopicQueryRes.java | 61 +++++++++
.../result/TopicViewRes.java} | 17 ++-
.../tubemq/manager/service/MasterServiceImpl.java | 8 ++
.../inlong/tubemq/manager/service/TubeConst.java | 4 +
.../manager/service/interfaces/MasterService.java | 2 +
.../inlong/tubemq/manager/utils/ConvertUtils.java | 10 +-
11 files changed, 351 insertions(+), 23 deletions(-)
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/ClusterController.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/ClusterController.java
index 92ff640..357b5d3 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/ClusterController.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/ClusterController.java
@@ -18,11 +18,11 @@
package org.apache.inlong.tubemq.manager.controller.cluster;
import com.google.common.collect.Lists;
+import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
-
-import java.util.List;
-import java.util.Map;
-
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.inlong.tubemq.manager.controller.TubeMQResult;
@@ -30,6 +30,10 @@ import org.apache.inlong.tubemq.manager.controller.cluster.dto.ClusterDto;
import org.apache.inlong.tubemq.manager.controller.cluster.request.AddClusterReq;
import org.apache.inlong.tubemq.manager.controller.cluster.request.DeleteClusterReq;
import org.apache.inlong.tubemq.manager.controller.cluster.vo.ClusterVo;
+import org.apache.inlong.tubemq.manager.controller.group.result.ConsumerGroupInfoRes;
+import org.apache.inlong.tubemq.manager.controller.group.result.ConsumerInfoRes;
+import org.apache.inlong.tubemq.manager.controller.topic.result.TopicQueryRes;
+import org.apache.inlong.tubemq.manager.controller.topic.result.TopicViewRes;
import org.apache.inlong.tubemq.manager.entry.ClusterEntry;
import org.apache.inlong.tubemq.manager.entry.MasterEntry;
import org.apache.inlong.tubemq.manager.service.TubeConst;
@@ -47,6 +51,9 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+import java.util.Map;
+
import static org.apache.inlong.tubemq.manager.service.TubeConst.SUCCESS_CODE;
@RestController
@@ -64,7 +71,7 @@ public class ClusterController {
@PostMapping("")
public @ResponseBody
- TubeMQResult clusterMethodProxy(@RequestParam String method, @RequestBody String req) {
+ TubeMQResult clusterMethodProxy(@RequestParam String method, @RequestBody String req) {
switch (method) {
case TubeConst.ADD:
return addNewCluster(gson.fromJson(req, AddClusterReq.class));
@@ -133,8 +140,9 @@ public class ClusterController {
MasterEntry masterNode = masterService.getMasterNode(clusterEntry.getClusterId());
+ ClusterVo allCount = getAllCount(clusterId);
TubeMQResult result = new TubeMQResult();
- result.setData(Lists.newArrayList(ConvertUtils.convertToClusterVo(clusterEntry, masterNode)));
+ result.setData(Lists.newArrayList(ConvertUtils.convertToClusterVo(clusterEntry, masterNode, allCount)));
return result;
}
@@ -149,7 +157,8 @@ public class ClusterController {
List<ClusterVo> clusterVos = Lists.newArrayList();
for (ClusterEntry cluster : allClusters) {
MasterEntry masterNode = masterService.getMasterNode(cluster.getClusterId());
- ClusterVo clusterVo = ConvertUtils.convertToClusterVo(cluster, masterNode);
+ ClusterVo allCount = getAllCount(Integer.valueOf((int) cluster.getClusterId()));
+ ClusterVo clusterVo = ConvertUtils.convertToClusterVo(cluster, masterNode, allCount);
clusterVos.add(clusterVo);
}
result.setData(clusterVos);
@@ -179,10 +188,130 @@ public class ClusterController {
@RequestMapping(value = "/query", method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
- String queryInfo(
+ String queryInfo(
@RequestParam Map<String, String> queryBody) throws Exception {
String url = masterService.getQueryUrl(queryBody);
return masterService.queryMaster(url);
}
+ /**
+ * get all count
+ *
+ * @param clusterId
+ */
+ public ClusterVo getAllCount(Integer clusterId) {
+ ClusterVo clusterVo = new ClusterVo();
+ int brokerSize = getBrokerSize(clusterId);
+ ClusterVo countVo = getTopicAndPartitionCount(clusterId);
+ int consumerGroupCount = getConsumerGroupCount(clusterId);
+ int consumerCount = getConsumerCount(clusterId);
+ int storeCount = getStoreCount(clusterId);
+ clusterVo.setBrokerCount(brokerSize);
+ clusterVo.setTopicCount(countVo.getTopicCount());
+ clusterVo.setPartitionCount(countVo.getPartitionCount());
+ clusterVo.setConsumerGroupCount(consumerGroupCount);
+ clusterVo.setConsumerCount(consumerCount);
+ clusterVo.setStoreCount(storeCount);
+ return clusterVo;
+ }
+
+ /**
+ * query borker size
+ *
+ * @param clusterId
+ */
+ public int getBrokerSize(Integer clusterId) {
+ String queryUrl = masterService.getQueryCountUrl(clusterId, TubeConst.BROKER_RUN_STATUS);
+ String queryData = masterService.queryMaster(queryUrl);
+ JsonObject jsonObject = gson.fromJson(queryData, JsonObject.class);
+ JsonElement count = jsonObject.get("count");
+ return gson.fromJson(count, int.class);
+ }
+
+ /**
+ * query topic and partition count
+ *
+ * @param clusterId
+ */
+ public ClusterVo getTopicAndPartitionCount(Integer clusterId) {
+ ClusterVo clusterVo = new ClusterVo();
+ String url = masterService.getQueryCountUrl(clusterId, TubeConst.TOPIC_CONFIG_INFO);
+ String queryMaster = masterService.queryMaster(url);
+ JsonObject jsonObject = gson.fromJson(queryMaster, JsonObject.class);
+ JsonElement data = jsonObject.get("data");
+ JsonElement dataCount = jsonObject.get("dataCount");
+ Integer topicSize = gson.fromJson(dataCount, Integer.class);
+ JsonArray jsonData = gson.fromJson(data, JsonArray.class);
+ int partitionCount = 0;
+ List<TopicQueryRes> topicQueryResList = gson.fromJson(jsonData.toString(),
+ new TypeToken<List<TopicQueryRes>>() {
+ }.getType());
+ for (TopicQueryRes topicQueryRes : topicQueryResList) {
+ String totalCfgNumPart = topicQueryRes.getTotalCfgNumPart();
+ partitionCount = partitionCount + (int) Math.ceil(Double.parseDouble(totalCfgNumPart));
+ }
+ clusterVo.setTopicCount(topicSize);
+ clusterVo.setPartitionCount(partitionCount);
+ return clusterVo;
+ }
+
+ /**
+ * query Consumer group count
+ *
+ * @param clusterId
+ * @return
+ */
+ public int getConsumerGroupCount(Integer clusterId) {
+ String queryUrl = masterService.getQueryCountUrl(clusterId, TubeConst.QUERY_CONSUMER_GROUP_INFO);
+ int consumerGroupCount = 0;
+ String groupData = masterService.queryMaster(queryUrl);
+ JsonObject jsonObject = gson.fromJson(groupData, JsonObject.class);
+ JsonElement data = jsonObject.get("data");
+ JsonArray jsonData = gson.fromJson(data, JsonArray.class);
+ List<ConsumerGroupInfoRes> groupList = gson.fromJson(jsonData.toString(),
+ new TypeToken<List<ConsumerGroupInfoRes>>() {
+ }.getType());
+ for (ConsumerGroupInfoRes groupInfoRes : groupList) {
+ consumerGroupCount = consumerGroupCount + (int) Math.ceil(groupInfoRes.getGroupCount());
+ }
+ return consumerGroupCount;
+ }
+
+ /**
+ * query consumer count
+ */
+ public int getConsumerCount(Integer clusterId) {
+ String queryUrl = masterService.getQueryCountUrl(clusterId, TubeConst.QUERY_CONSUMER_INFO);
+ String queryMaster = masterService.queryMaster(queryUrl);
+ JsonObject jsonObject = gson.fromJson(queryMaster, JsonObject.class);
+ JsonElement data = jsonObject.get("data");
+ JsonArray jsonData = gson.fromJson(data, JsonArray.class);
+ int consumerCount = 0;
+ List<ConsumerInfoRes> topicViewResList = gson.fromJson(jsonData.toString(),
+ new TypeToken<List<ConsumerInfoRes>>() {
+ }.getType());
+ for (ConsumerInfoRes consumerInfoRes : topicViewResList) {
+ consumerCount = (int) Math.ceil(consumerInfoRes.getConsumerNum());
+ }
+ return consumerCount;
+ }
+
+ /**
+ * query store count
+ */
+ public int getStoreCount(Integer clusterId) {
+ String queryUrl = masterService.getQueryCountUrl(clusterId, TubeConst.TOPIC_VIEW);
+ JsonObject jsonObject = gson.fromJson(masterService.queryMaster(queryUrl), JsonObject.class);
+ JsonElement getData = jsonObject.get("data");
+ JsonArray fromJson = gson.fromJson(getData, JsonArray.class);
+ int storeCount = 0;
+ List<TopicViewRes> topicViewResList = gson.fromJson(fromJson.toString(),
+ new TypeToken<List<TopicViewRes>>() {
+ }.getType());
+ for (TopicViewRes topicViewRes : topicViewResList) {
+ storeCount = storeCount + (int) Math.ceil(topicViewRes.getTotalCfgNumStore());
+ }
+ return storeCount;
+ }
+
}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
index ab5b87a..500873c 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
@@ -26,4 +26,11 @@ public class ClusterVo {
private Long clusterId;
private String clusterName;
private String masterIp;
+ private int reloadBrokerSize;
+ private int brokerCount;
+ private int topicCount;
+ private int storeCount;
+ private int partitionCount;
+ private int consumerGroupCount;
+ private int consumerCount;
}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/group/result/ConsumerGroupInfoRes.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/group/result/ConsumerGroupInfoRes.java
new file mode 100644
index 0000000..71a5ac4
--- /dev/null
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/group/result/ConsumerGroupInfoRes.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.tubemq.manager.controller.group.result;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ConsumerGroupInfoRes {
+ private String topicName;
+ private boolean isEnable;
+ private String createUser;
+ private String createDate;
+ private List<AuthConsumeGroup> authConsumeGroup;
+ private double groupCount;
+ private List<AuthFilterCondSet> authFilterCondSet;
+ private double filterCount;
+
+ @Data
+ private static class AuthConsumeGroup {
+ private String topicName;
+ private String groupName;
+ private String createUser;
+ private String createDate;
+ }
+
+ @Data
+ private static class AuthFilterCondSet {
+ private String topicName;
+ private String groupName;
+ private double condStatus;
+ private String filterConds;
+ private String createUser;
+ private String createDate;
+ }
+}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/group/result/ConsumerInfoRes.java
similarity index 78%
copy from inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
copy to inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/group/result/ConsumerInfoRes.java
index ab5b87a..0b606ea 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/group/result/ConsumerInfoRes.java
@@ -15,15 +15,13 @@
* limitations under the License.
*/
-package org.apache.inlong.tubemq.manager.controller.cluster.vo;
+package org.apache.inlong.tubemq.manager.controller.group.result;
import lombok.Data;
-import lombok.NoArgsConstructor;
@Data
-@NoArgsConstructor
-public class ClusterVo {
- private Long clusterId;
- private String clusterName;
- private String masterIp;
+public class ConsumerInfoRes {
+ private String consumeGroup;
+ private String topicSet;
+ private Double consumerNum;
}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicInfoRes.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicInfoRes.java
new file mode 100644
index 0000000..f62c2b8
--- /dev/null
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicInfoRes.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.tubemq.manager.controller.topic.result;
+
+import lombok.Data;
+
+@Data
+public class TopicInfoRes {
+ private String topicName;
+ private String topicStatusId;
+ private String brokerId;
+ private String brokerIp;
+ private String brokerPort;
+ private String numPartitions;
+ private String unflushThreshold;
+ private String unflushStringerval;
+ private String unflushDataHold;
+ private String deleteWhen;
+ private String deletePolicy;
+ private boolean acceptPublish;
+ private boolean acceptSubscribe;
+ private String numTopicStores;
+ private String memCacheMsgSizeInMB;
+ private String memCacheFlushStringvl;
+ private String memCacheMsgCntInK;
+ private String maxMsgSizeInMB;
+ private String createUser;
+ private String createDate;
+ private String modifyUser;
+ private String modifyDate;
+ private TopicRunInfo runInfo;
+
+ @Data
+ private static class TopicRunInfo {
+ private boolean acceptPublish;
+ private boolean acceptSubscribe;
+ private String numPartitions;
+ private String numTopicStores;
+ private String brokerManageStatus;
+ }
+}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicQueryRes.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicQueryRes.java
new file mode 100644
index 0000000..22b02a0
--- /dev/null
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicQueryRes.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.inlong.tubemq.manager.controller.topic.result;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TopicQueryRes {
+ private String topicName;
+ private List<TopicInfoRes> topicInfo;
+ private String infoCount;
+ private String totalCfgNumPart;
+ private boolean isSrvAcceptPublish;
+ private boolean isSrvAcceptSubscribe;
+ private String totalRunNumPartCount;
+ private TopicAuthInfo authData;
+
+ @Data
+ private static class TopicAuthInfo {
+ private boolean enableAuthControl;
+ private String createUser;
+ private String createDate;
+ private List<AuthConsumeGroupInfo> authConsumeGroup;
+ private String groupCount;
+ private List<AuthFilterCondSet> authFilterCondSet;
+ private String filterCount;
+
+ @Data
+ private static class AuthConsumeGroupInfo {
+ private String groupName;
+ private String createUser;
+ private String createDate;
+ }
+
+ @Data
+ private static class AuthFilterCondSet {
+ private String groupName;
+ private String condStatus;
+ private String filterConds;
+ private String createUser;
+ private String createDate;
+ }
+ }
+}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicViewRes.java
similarity index 67%
copy from inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
copy to inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicViewRes.java
index ab5b87a..31ecf02 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/cluster/vo/ClusterVo.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/controller/topic/result/TopicViewRes.java
@@ -15,15 +15,18 @@
* limitations under the License.
*/
-package org.apache.inlong.tubemq.manager.controller.cluster.vo;
+package org.apache.inlong.tubemq.manager.controller.topic.result;
import lombok.Data;
-import lombok.NoArgsConstructor;
@Data
-@NoArgsConstructor
-public class ClusterVo {
- private Long clusterId;
- private String clusterName;
- private String masterIp;
+public class TopicViewRes {
+ private String topicName;
+ private double totalCfgNumStore;
+ private double totalRunNumStore;
+ private double totalCfgNumPart;
+ private double totalRunNumPartCount;
+ private boolean isSrvAcceptPublish;
+ private boolean isSrvAcceptSubscribe;
+ private boolean enableAuthControl;
}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/MasterServiceImpl.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/MasterServiceImpl.java
index 917c1a4..f9ebd18 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/MasterServiceImpl.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/MasterServiceImpl.java
@@ -172,4 +172,12 @@ public class MasterServiceImpl implements MasterService {
return requestMaster(url);
}
+ @Override
+ public String getQueryCountUrl(Integer clusterId, String method) {
+ MasterEntry masterEntry =
+ masterRepository.findMasterEntryByClusterIdEquals(clusterId);
+ return TubeConst.SCHEMA + masterEntry.getIp() + ":" + masterEntry.getWebPort()
+ + method + "&" + "clusterId=" + clusterId;
+ }
+
}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/TubeConst.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/TubeConst.java
index b7a4287..ef851f9 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/TubeConst.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/TubeConst.java
@@ -34,6 +34,10 @@ public class TubeConst {
"/webapi.htm?type=op_modify&method=admin_add_new_topic_record";
public static final String RELOAD_BROKER =
"/webapi.htm?type=op_modify&method=admin_reload_broker_configure";
+ public static final String QUERY_CONSUMER_GROUP_INFO =
+ "/webapi.htm?type=op_query&method=admin_query_topic_authorize_control";
+ public static final String QUERY_CONSUMER_INFO =
+ "/webapi.htm?type=op_query&method=admin_query_sub_info";
/**
* http method type
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/interfaces/MasterService.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/interfaces/MasterService.java
index 9886b09..c94b7af 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/interfaces/MasterService.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/service/interfaces/MasterService.java
@@ -92,4 +92,6 @@ public interface MasterService {
* @return
*/
TubeMQResult checkMasterNodeStatus(String masterIp, Integer masterPort);
+
+ String getQueryCountUrl(Integer clusterId, String method);
}
diff --git a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/utils/ConvertUtils.java b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/utils/ConvertUtils.java
index 1715013..65b7bae 100644
--- a/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/utils/ConvertUtils.java
+++ b/inlong-tubemq/tubemq-manager/src/main/java/org/apache/inlong/tubemq/manager/utils/ConvertUtils.java
@@ -111,11 +111,19 @@ public class ConvertUtils {
return StringUtils.join(queryList, "&");
}
- public static ClusterVo convertToClusterVo(ClusterEntry clusterEntry, MasterEntry masterEntry) {
+ public static ClusterVo convertToClusterVo(ClusterEntry clusterEntry,
+ MasterEntry masterEntry, ClusterVo clusterVo) {
ClusterVo cluster = new ClusterVo();
cluster.setClusterId(clusterEntry.getClusterId());
cluster.setMasterIp(masterEntry.getIp());
cluster.setClusterName(clusterEntry.getClusterName());
+ cluster.setReloadBrokerSize(clusterEntry.getReloadBrokerSize());
+ cluster.setBrokerCount(clusterVo.getBrokerCount());
+ cluster.setTopicCount(clusterVo.getTopicCount());
+ cluster.setPartitionCount(clusterVo.getPartitionCount());
+ cluster.setConsumerGroupCount(clusterVo.getConsumerGroupCount());
+ cluster.setConsumerCount(clusterVo.getConsumerCount());
+ cluster.setStoreCount(clusterVo.getStoreCount());
return cluster;
}