From f7f90aeaaa5fd376ddd127ac81757c303bef7928 Mon Sep 17 00:00:00 2001
From: Peng <71620349+PenceXie@users.noreply.github.com>
Date: Fri, 16 Sep 2022 15:18:29 +0800
Subject: [PATCH 1/6] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c5830ffe..afff4b6c 100644
--- a/README.md
+++ b/README.md
@@ -51,7 +51,7 @@
- 无需侵入改造 `Apache Kafka` ,一键便能纳管 `0.10.x` ~ `3.x.x` 众多版本的Kafka,包括 `ZK` 或 `Raft` 运行模式的版本,同时在兼容架构上具备良好的扩展性,帮助您提升集群管理水平;
- 🌪️ **零成本、界面化**
- - 提炼高频 CLI 能力,设计合理的产品路径,提供清新美观的 GUI 界面,支持 Cluster、Broker、Topic、Group、Message、ACL 等组件 GUI 管理,普通用户5分钟即可上手;
+ - 提炼高频 CLI 能力,设计合理的产品路径,提供清新美观的 GUI 界面,支持 Cluster、Broker、Zookeeper、Topic、ConsumerGroup、Message、ACL、Connect 等组件 GUI 管理,普通用户5分钟即可上手;
- 👏 **云原生、插件化**
- 基于云原生构建,具备水平扩展能力,只需要增加节点即可获取更强的采集及对外服务能力,提供众多可热插拔的企业级特性,覆盖可观测性生态整合、资源治理、多活容灾等核心场景;
From 597ea04a96f90e7b7886d945ea549c3a6a167485 Mon Sep 17 00:00:00 2001
From: Peng <71620349+PenceXie@users.noreply.github.com>
Date: Fri, 16 Sep 2022 15:20:04 +0800
Subject: [PATCH 2/6] Update README.md
---
README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index afff4b6c..70585679 100644
--- a/README.md
+++ b/README.md
@@ -57,10 +57,10 @@
- 基于云原生构建,具备水平扩展能力,只需要增加节点即可获取更强的采集及对外服务能力,提供众多可热插拔的企业级特性,覆盖可观测性生态整合、资源治理、多活容灾等核心场景;
- 🚀 **专业能力**
- - 集群管理:支持集群一键纳管,健康分析、核心组件观测 等功能;
+ - 集群管理:支持一键纳管,健康分析、核心组件观测 等功能;
- 观测提升:多维度指标观测大盘、观测指标最佳实践 等功能;
- 异常巡检:集群多维度健康巡检、集群多维度健康分 等功能;
- - 能力增强:Topic扩缩副本、Topic副本迁移 等功能;
+ - 能力增强:集群负载均衡、Topic扩缩副本、Topic副本迁移 等功能;
From 5edd43884f16bbca8c92bc539b81965c664e74b2 Mon Sep 17 00:00:00 2001
From: Peng <71620349+PenceXie@users.noreply.github.com>
Date: Mon, 26 Sep 2022 18:43:25 +0800
Subject: [PATCH 3/6] Update README.md
---
README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/README.md b/README.md
index 70585679..1ae6ca59 100644
--- a/README.md
+++ b/README.md
@@ -133,6 +133,8 @@ PS: 提问请尽量把问题一次性描述清楚,并告知环境信息情况
**`2、微信群`**
微信加群:添加`mike_zhangliang`、`PenceXie`的微信号备注KnowStreaming加群。
+
+
## Star History
From 9fc9c54fa178bc1af41b7db88f99c913f9b3518c Mon Sep 17 00:00:00 2001
From: zengqiao
Date: Wed, 28 Sep 2022 11:20:16 +0800
Subject: [PATCH 4/6] bump version to 3.0.0
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 0057ea03..8a810fa4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,7 +15,7 @@
- 3.0.0-beta.4
+ 3.0.0
8
8
From 95f1a2c630ce561abde787360f99c2dd94cafa9a Mon Sep 17 00:00:00 2001
From: zengqiao
Date: Wed, 28 Sep 2022 19:44:33 +0800
Subject: [PATCH 5/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=87=AA=E5=8A=A8?=
=?UTF-8?q?=E5=88=9B=E5=BB=BAES=E7=B4=A2=E5=BC=95=E6=A8=A1=E7=89=88?=
=?UTF-8?q?=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../km/persistence/es/ESOpClient.java | 31 +++++++++++++++----
1 file changed, 25 insertions(+), 6 deletions(-)
diff --git a/km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/es/ESOpClient.java b/km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/es/ESOpClient.java
index 1200699a..c70a4df6 100644
--- a/km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/es/ESOpClient.java
+++ b/km-persistence/src/main/java/com/xiaojukeji/know/streaming/km/persistence/es/ESOpClient.java
@@ -392,10 +392,7 @@ public class ESOpClient {
return false;
}
- /**
- * 创建索引模板
- */
- public boolean createIndexTemplateIfNotExist(String indexTemplateName, String config) {
+ public boolean templateExist(String indexTemplateName){
ESClient esClient = null;
try {
@@ -410,6 +407,29 @@ public class ESOpClient {
if (null != templateConfig) {
return true;
}
+ } catch (Exception e) {
+ LOGGER.warn( "method=templateExist||indexTemplateName={}||msg=exception!",
+ indexTemplateName, e);
+ } finally {
+ if (esClient != null) {
+ this.returnESClientToPool(esClient);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * 创建索引模板
+ */
+ public boolean createIndexTemplateIfNotExist(String indexTemplateName, String config) {
+ ESClient esClient = null;
+
+ try {
+ esClient = this.getESClientFromPool();
+
+ //存在模板就返回,不存在就创建
+ if(templateExist(indexTemplateName)){return true;}
// 创建新的模板
ESIndicesPutTemplateResponse response = esClient.admin().indices().preparePutTemplate( indexTemplateName )
@@ -417,8 +437,7 @@ public class ESOpClient {
return response.getAcknowledged();
} catch (Exception e) {
- LOGGER.warn(
- "class=ESOpClient||method=createIndexTemplateIfNotExist||indexTemplateName={}||config={}||msg=exception!",
+ LOGGER.warn( "method=createIndexTemplateIfNotExist||indexTemplateName={}||config={}||msg=exception!",
indexTemplateName, config, e
);
} finally {
From 7815126ff55053f68b9055d15cad7a26b8c9e091 Mon Sep 17 00:00:00 2001
From: EricZeng
Date: Wed, 28 Sep 2022 19:55:30 +0800
Subject: [PATCH 6/6] =?UTF-8?q?1=E3=80=81=E4=BF=AE=E5=A4=8DGroup=E6=8C=87?=
=?UTF-8?q?=E6=A0=87=E9=98=B2=E9=87=8D=E5=A4=8D=E4=B8=8D=E7=94=9F=E6=95=88?=
=?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=9B2=E3=80=81=E4=BF=AE=E5=A4=8D?=
=?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BAES=E7=B4=A2=E5=BC=95?=
=?UTF-8?q?=E6=A8=A1=E7=89=88=E5=A4=B1=E8=B4=A5=E9=97=AE=E9=A2=98=EF=BC=9B?=
=?UTF-8?q?=20(#628)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* 修复自动创建ES索引模版失败问题
* 修复Group指标防重复不生效问题
Co-authored-by: zengqiao
---
.../group/impl/GroupMetricServiceImpl.java | 26 ++++++++++++-------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/group/impl/GroupMetricServiceImpl.java b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/group/impl/GroupMetricServiceImpl.java
index ea324888..427edc2c 100644
--- a/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/group/impl/GroupMetricServiceImpl.java
+++ b/km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/group/impl/GroupMetricServiceImpl.java
@@ -90,23 +90,31 @@ public class GroupMetricServiceImpl extends BaseMetricService implements GroupMe
@Override
public Result> collectGroupMetricsFromKafka(Long clusterId, String groupName, List metrics) {
- List allGroupMetrics = new ArrayList<>();
- Map topicPartitionGroupMap = new HashMap<>();
+ List allGroupMetrics = new ArrayList<>();
+ Map topicPartitionGroupMap = new HashMap<>();
GroupMetrics groupMetrics = new GroupMetrics(clusterId, groupName, true);
- for(String metric : metrics){
- if(null != groupMetrics.getMetrics().get(metric)){continue;}
+ Set existMetricSet = new HashSet<>();
+ for (String metric : metrics) {
+ if (existMetricSet.contains(metric)) {
+ continue;
+ }
Result> ret = collectGroupMetricsFromKafka(clusterId, groupName, metric);
- if(null != ret && ret.successful()){
+ if (null != ret && ret.successful()) {
List groupMetricsList = ret.getData();
- for(GroupMetrics gm : groupMetricsList){
- if(gm.isBGroupMetric()){
+
+ for (GroupMetrics gm : groupMetricsList) {
+
+ //记录已存在的指标
+ existMetricSet.addAll(gm.getMetrics().keySet());
+
+ if (gm.isBGroupMetric()) {
groupMetrics.getMetrics().putAll(gm.getMetrics());
- }else {
+ } else {
GroupMetrics topicGroupMetric = topicPartitionGroupMap.getOrDefault(
gm.getTopic() + gm.getPartitionId(),
- new GroupMetrics(clusterId, groupName, false));
+ new GroupMetrics(clusterId, gm.getPartitionId(), gm.getTopic(), groupName, false));
topicGroupMetric.getMetrics().putAll(gm.getMetrics());
topicPartitionGroupMap.put(gm.getTopic() + gm.getPartitionId(), topicGroupMetric);