修复Group指标防重复不生效问题

This commit is contained in:
zengqiao
2022-09-28 19:52:11 +08:00
parent 1e256ae1fd
commit a5fa9de54b

View File

@@ -94,19 +94,27 @@ public class GroupMetricServiceImpl extends BaseMetricService implements GroupMe
Map<String, GroupMetrics> topicPartitionGroupMap = new HashMap<>(); Map<String, GroupMetrics> topicPartitionGroupMap = new HashMap<>();
GroupMetrics groupMetrics = new GroupMetrics(clusterId, groupName, true); GroupMetrics groupMetrics = new GroupMetrics(clusterId, groupName, true);
Set<String> existMetricSet = new HashSet<>();
for (String metric : metrics) { for (String metric : metrics) {
if(null != groupMetrics.getMetrics().get(metric)){continue;} if (existMetricSet.contains(metric)) {
continue;
}
Result<List<GroupMetrics>> ret = collectGroupMetricsFromKafka(clusterId, groupName, metric); Result<List<GroupMetrics>> ret = collectGroupMetricsFromKafka(clusterId, groupName, metric);
if (null != ret && ret.successful()) { if (null != ret && ret.successful()) {
List<GroupMetrics> groupMetricsList = ret.getData(); List<GroupMetrics> groupMetricsList = ret.getData();
for (GroupMetrics gm : groupMetricsList) { for (GroupMetrics gm : groupMetricsList) {
//记录已存在的指标
existMetricSet.addAll(gm.getMetrics().keySet());
if (gm.isBGroupMetric()) { if (gm.isBGroupMetric()) {
groupMetrics.getMetrics().putAll(gm.getMetrics()); groupMetrics.getMetrics().putAll(gm.getMetrics());
} else { } else {
GroupMetrics topicGroupMetric = topicPartitionGroupMap.getOrDefault( GroupMetrics topicGroupMetric = topicPartitionGroupMap.getOrDefault(
gm.getTopic() + gm.getPartitionId(), gm.getTopic() + gm.getPartitionId(),
new GroupMetrics(clusterId, groupName, false)); new GroupMetrics(clusterId, gm.getPartitionId(), gm.getTopic(), groupName, false));
topicGroupMetric.getMetrics().putAll(gm.getMetrics()); topicGroupMetric.getMetrics().putAll(gm.getMetrics());
topicPartitionGroupMap.put(gm.getTopic() + gm.getPartitionId(), topicGroupMetric); topicPartitionGroupMap.put(gm.getTopic() + gm.getPartitionId(), topicGroupMetric);