Skip to content

Commit a5fa9de

Browse files
author
zengqiao
committed
修复Group指标防重复不生效问题
1 parent 1e256ae commit a5fa9de

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

km-core/src/main/java/com/xiaojukeji/know/streaming/km/core/service/group/impl/GroupMetricServiceImpl.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -90,23 +90,31 @@ public Result<List<GroupMetrics>> collectGroupMetricsFromKafka(Long clusterId, S
9090

9191
@Override
9292
public Result<List<GroupMetrics>> collectGroupMetricsFromKafka(Long clusterId, String groupName, List<String> metrics) {
93-
List<GroupMetrics> allGroupMetrics = new ArrayList<>();
94-
Map<String, GroupMetrics> topicPartitionGroupMap = new HashMap<>();
93+
List<GroupMetrics> allGroupMetrics = new ArrayList<>();
94+
Map<String, GroupMetrics> topicPartitionGroupMap = new HashMap<>();
9595

9696
GroupMetrics groupMetrics = new GroupMetrics(clusterId, groupName, true);
97-
for(String metric : metrics){
98-
if(null != groupMetrics.getMetrics().get(metric)){continue;}
97+
Set<String> existMetricSet = new HashSet<>();
98+
for (String metric : metrics) {
99+
if (existMetricSet.contains(metric)) {
100+
continue;
101+
}
99102

100103
Result<List<GroupMetrics>> ret = collectGroupMetricsFromKafka(clusterId, groupName, metric);
101-
if(null != ret && ret.successful()){
104+
if (null != ret && ret.successful()) {
102105
List<GroupMetrics> groupMetricsList = ret.getData();
103-
for(GroupMetrics gm : groupMetricsList){
104-
if(gm.isBGroupMetric()){
106+
107+
for (GroupMetrics gm : groupMetricsList) {
108+
109+
//记录已存在的指标
110+
existMetricSet.addAll(gm.getMetrics().keySet());
111+
112+
if (gm.isBGroupMetric()) {
105113
groupMetrics.getMetrics().putAll(gm.getMetrics());
106-
}else {
114+
} else {
107115
GroupMetrics topicGroupMetric = topicPartitionGroupMap.getOrDefault(
108116
gm.getTopic() + gm.getPartitionId(),
109-
new GroupMetrics(clusterId, groupName, false));
117+
new GroupMetrics(clusterId, gm.getPartitionId(), gm.getTopic(), groupName, false));
110118

111119
topicGroupMetric.getMetrics().putAll(gm.getMetrics());
112120
topicPartitionGroupMap.put(gm.getTopic() + gm.getPartitionId(), topicGroupMetric);

0 commit comments

Comments
 (0)