From c9346b1322cbe9480983e587e72cae54818306bc Mon Sep 17 00:00:00 2001 From: 01476299 Date: Mon, 5 Aug 2019 17:33:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dgroups=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/eagle/web/service/impl/ConsumerServiceImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java index 2711426c..910dc149 100644 --- a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java +++ b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java @@ -228,7 +228,7 @@ private String getKafkaConsumer(DisplayInfo page, String clusterAlias) { for (Object object : consumerGroups) { JSONObject consumerGroup = (JSONObject) object; String group = consumerGroup.getString("group"); - if (page.getSearch().length() > 0 && page.getSearch().equals(group)) { + if (page.getSearch().length() > 0 && group.contains(page.getSearch())) { ConsumerInfo consumer = new ConsumerInfo(); consumer.setGroup(group); consumer.setId(++id); @@ -236,7 +236,6 @@ private String getKafkaConsumer(DisplayInfo page, String clusterAlias) { consumer.setActiveNumber(JSON.parseObject(kafkaService.getKafkaActiverSize(clusterAlias, group)).getInteger("activers")); consumer.setTopics(JSON.parseObject(kafkaService.getKafkaActiverSize(clusterAlias, group)).getInteger("topics")); kafkaConsumerPages.add(consumer); - break; } else if (page.getSearch().length() == 0) { if (offset < (page.getiDisplayLength() + page.getiDisplayStart()) && offset >= page.getiDisplayStart()) { ConsumerInfo consumer = new ConsumerInfo(); From 93f7e595f1ace4336d0ea72153cffd8e14498e17 Mon Sep 17 00:00:00 2001 From: 01476299 Date: Tue, 6 Aug 2019 10:24:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dgroups=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/ConsumersController.java | 12 ++++-- .../eagle/web/service/ConsumerService.java | 3 +- .../web/service/impl/ConsumerServiceImpl.java | 43 ++++++++++--------- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/ConsumersController.java b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/ConsumersController.java index 9ee0c3a1..5f01ec39 100644 --- a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/ConsumersController.java +++ b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/ConsumersController.java @@ -21,6 +21,7 @@ import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -36,6 +37,7 @@ import org.smartloli.kafka.eagle.common.util.KConstants; import org.smartloli.kafka.eagle.common.util.SystemConfigUtils; import org.smartloli.kafka.eagle.web.service.ConsumerService; +import scala.Tuple2; /** * Kafka consumer controller to viewer data. @@ -105,8 +107,8 @@ public void consumerTableAjax(HttpServletResponse response, HttpServletRequest r String clusterAlias = session.getAttribute(KConstants.SessionAlias.CLUSTER_ALIAS).toString(); String formatter = SystemConfigUtils.getProperty(clusterAlias + ".kafka.eagle.offset.storage"); - int count = consumerService.getConsumerCount(clusterAlias, formatter); - JSONArray consumers = JSON.parseArray(consumerService.getConsumer(clusterAlias, formatter, page)); + Tuple2 reTuple = consumerService.getConsumer(clusterAlias, formatter, page); + JSONArray consumers = JSON.parseArray(reTuple._1); JSONArray aaDatas = new JSONArray(); for (Object object : consumers) { JSONObject consumer = (JSONObject) object; @@ -126,8 +128,10 @@ public void consumerTableAjax(HttpServletResponse response, HttpServletRequest r JSONObject target = new JSONObject(); target.put("sEcho", sEcho); - target.put("iTotalRecords", count); - target.put("iTotalDisplayRecords", count); + target.put("iTotalRecords", reTuple._2); + target.put("iTotalDisplayRecords", reTuple._2); + + target.put("aaData", aaDatas); try { byte[] output = target.toJSONString().getBytes(); diff --git a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/ConsumerService.java b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/ConsumerService.java index 284dc559..8d01e1a8 100644 --- a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/ConsumerService.java +++ b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/ConsumerService.java @@ -18,6 +18,7 @@ package org.smartloli.kafka.eagle.web.service; import org.smartloli.kafka.eagle.common.protocol.DisplayInfo; +import scala.Tuple2; /** * Kafka consumer data interface. @@ -43,7 +44,7 @@ public interface ConsumerService { public String getConsumerDetail(String clusterAlias, String formatter, String group); /** Judge consumers storage offset in kafka or zookeeper interface. */ - public String getConsumer(String clusterAlias, String formatter, DisplayInfo page); + public Tuple2 getConsumer(String clusterAlias, String formatter, DisplayInfo page); /** Get consumer size from kafka topic interface. */ public int getConsumerCount(String clusterAlias, String formatter); diff --git a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java index 910dc149..4c34140c 100644 --- a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java +++ b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/service/impl/ConsumerServiceImpl.java @@ -17,16 +17,9 @@ */ package org.smartloli.kafka.eagle.web.service.impl; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.Map.Entry; - import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; - import org.smartloli.kafka.eagle.common.protocol.ConsumerInfo; import org.smartloli.kafka.eagle.common.protocol.DisplayInfo; import org.smartloli.kafka.eagle.common.protocol.TopicConsumerInfo; @@ -35,6 +28,13 @@ import org.smartloli.kafka.eagle.core.factory.KafkaService; import org.smartloli.kafka.eagle.web.service.ConsumerService; import org.springframework.stereotype.Service; +import scala.Tuple2; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; /** * Kafka consumer data interface, and set up the return data set. @@ -114,7 +114,7 @@ public String getActiveTopic(String clusterAlias, String formatter) { } /** Get consumers from zookeeper. */ - private String getConsumer(String clusterAlias, DisplayInfo page) { + private Tuple2 getConsumerZk(String clusterAlias, DisplayInfo page) { Map> consumers = kafkaService.getConsumers(clusterAlias, page); List consumerPages = new ArrayList(); int id = 0; @@ -127,15 +127,15 @@ private String getConsumer(String clusterAlias, DisplayInfo page) { consumer.setActiveNumber(getActiveNumber(clusterAlias, entry.getKey(), entry.getValue())); consumerPages.add(consumer); } - return consumerPages.toString(); + return new Tuple2(consumerPages.toString(),consumers.size()); } /** Judge consumers storage offset in kafka or zookeeper. */ - public String getConsumer(String clusterAlias, String formatter, DisplayInfo page) { + public Tuple2 getConsumer(String clusterAlias, String formatter, DisplayInfo page) { if ("kafka".equals(formatter)) { return getKafkaConsumer(page, clusterAlias); } else { - return getConsumer(clusterAlias, page); + return getConsumerZk(clusterAlias, page); } } @@ -220,7 +220,7 @@ private String getKafkaActiveTopic(String clusterAlias) { } /** Get kafka consumer & storage offset in kafka topic. */ - private String getKafkaConsumer(DisplayInfo page, String clusterAlias) { + private Tuple2 getKafkaConsumer(DisplayInfo page, String clusterAlias) { List kafkaConsumerPages = new ArrayList(); JSONArray consumerGroups = JSON.parseArray(kafkaService.getKafkaConsumer(clusterAlias)); int offset = 0; @@ -229,13 +229,16 @@ private String getKafkaConsumer(DisplayInfo page, String clusterAlias) { JSONObject consumerGroup = (JSONObject) object; String group = consumerGroup.getString("group"); if (page.getSearch().length() > 0 && group.contains(page.getSearch())) { - ConsumerInfo consumer = new ConsumerInfo(); - consumer.setGroup(group); - consumer.setId(++id); - consumer.setNode(consumerGroup.getString("node")); - consumer.setActiveNumber(JSON.parseObject(kafkaService.getKafkaActiverSize(clusterAlias, group)).getInteger("activers")); - consumer.setTopics(JSON.parseObject(kafkaService.getKafkaActiverSize(clusterAlias, group)).getInteger("topics")); - kafkaConsumerPages.add(consumer); + if (offset < (page.getiDisplayLength() + page.getiDisplayStart()) && offset >= page.getiDisplayStart()) { + ConsumerInfo consumer = new ConsumerInfo(); + consumer.setGroup(group); + consumer.setId(++id); + consumer.setNode(consumerGroup.getString("node")); + consumer.setActiveNumber(JSON.parseObject(kafkaService.getKafkaActiverSize(clusterAlias, group)).getInteger("activers")); + consumer.setTopics(JSON.parseObject(kafkaService.getKafkaActiverSize(clusterAlias, group)).getInteger("topics")); + kafkaConsumerPages.add(consumer); + } + offset++; } else if (page.getSearch().length() == 0) { if (offset < (page.getiDisplayLength() + page.getiDisplayStart()) && offset >= page.getiDisplayStart()) { ConsumerInfo consumer = new ConsumerInfo(); @@ -249,7 +252,7 @@ private String getKafkaConsumer(DisplayInfo page, String clusterAlias) { offset++; } } - return kafkaConsumerPages.toString(); + return new Tuple2<>(kafkaConsumerPages.toString(),offset); } /** Get consumer detail from kafka topic. */ From 5a534db1a53e6dd3c06aeee41471ed0c92a59845 Mon Sep 17 00:00:00 2001 From: 01476299 Date: Tue, 6 Aug 2019 14:00:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E8=AD=A6?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B5=E9=9D=A2groups=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=90=9C=E7=B4=A2=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kafka/eagle/web/controller/AlarmController.java | 6 +++--- .../java/org/smartloli/kafka/eagle/web/dao/AlertDao.xml | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/AlarmController.java b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/AlarmController.java index 339b1fc1..cf091a05 100644 --- a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/AlarmController.java +++ b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/controller/AlarmController.java @@ -246,11 +246,11 @@ public void alarmTopicListAjax(HttpServletResponse response, HttpServletRequest obj.put("operate", "Remove Modify "); aaDatas.add(obj); } - + int count = alertService.alertCount(map); JSONObject target = new JSONObject(); target.put("sEcho", sEcho); - target.put("iTotalRecords", alertService.alertCount(map)); - target.put("iTotalDisplayRecords", alertService.alertCount(map)); + target.put("iTotalRecords", count); + target.put("iTotalDisplayRecords", count); target.put("aaData", aaDatas); try { byte[] output = target.toJSONString().getBytes(); diff --git a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/dao/AlertDao.xml b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/dao/AlertDao.xml index f717042c..c1e4bf92 100644 --- a/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/dao/AlertDao.xml +++ b/kafka-eagle-web/src/main/java/org/smartloli/kafka/eagle/web/dao/AlertDao.xml @@ -36,7 +36,7 @@ `cluster`=#{cluster} - and (`group`=#{search} or `topic`=#{search}) + and (`group` like '%'||#{search}||'%' or `topic` like '%'||#{search}||'%') order by `id` desc limit #{start},#{size} @@ -44,7 +44,11 @@