|
@@ -4,6 +4,7 @@ import com.provectus.kafka.ui.cluster.config.ClustersProperties;
|
|
|
import com.provectus.kafka.ui.cluster.mapper.ClusterMapper;
|
|
|
import com.provectus.kafka.ui.cluster.model.KafkaCluster;
|
|
|
import com.provectus.kafka.ui.cluster.model.MetricsConstants;
|
|
|
+import com.provectus.kafka.ui.model.BrokerMetrics;
|
|
|
import com.provectus.kafka.ui.model.Cluster;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.mapstruct.factory.Mappers;
|
|
@@ -17,6 +18,8 @@ import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.provectus.kafka.ui.cluster.model.MetricsConstants.CLUSTER_ID;
|
|
|
+
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
public class ClusterService {
|
|
@@ -39,6 +42,7 @@ public class ClusterService {
|
|
|
.stream()
|
|
|
.map(kafkaCluster -> {
|
|
|
Cluster cluster = clusterMapper.toOpenApiCluster(kafkaCluster);
|
|
|
+ cluster.setId(kafkaCluster.getMetric(CLUSTER_ID));
|
|
|
cluster.setBrokerCount(intValueOfOrNull(kafkaCluster.getMetric(MetricsConstants.BROKERS_COUNT)));
|
|
|
cluster.setTopicCount(intValueOfOrNull(kafkaCluster.getMetric(MetricsConstants.TOPIC_COUNT)));
|
|
|
cluster.setBytesInPerSec(intValueOfOrNull(kafkaCluster.getMetric(MetricsConstants.BYTES_IN_PER_SEC)));
|
|
@@ -51,6 +55,25 @@ public class ClusterService {
|
|
|
return Mono.just(ResponseEntity.ok(Flux.fromIterable(clusters)));
|
|
|
}
|
|
|
|
|
|
+ public Mono<ResponseEntity<BrokerMetrics>> getBrokerMetrics(String clusterId) {
|
|
|
+ KafkaCluster cluster = kafkaClusters.stream()
|
|
|
+ .filter(cltr -> cltr.getMetricsMap().get(CLUSTER_ID).equals(clusterId))
|
|
|
+ .findFirst()
|
|
|
+ .orElseThrow();
|
|
|
+
|
|
|
+ BrokerMetrics brokerMetrics = new BrokerMetrics();
|
|
|
+ brokerMetrics.setClusterId(cluster.getMetricsMap().get(CLUSTER_ID));
|
|
|
+ brokerMetrics.setBrokerCount(intValueOfOrNull(cluster.getMetric(MetricsConstants.BROKERS_COUNT)));
|
|
|
+ brokerMetrics.setBytesInPerSec(intValueOfOrNull(cluster.getMetric(MetricsConstants.BYTES_IN_PER_SEC)));
|
|
|
+ brokerMetrics.setZookeeperStatus(intValueOfOrNull(cluster.getMetric(MetricsConstants.ZOOKEEPER_STATUS)));
|
|
|
+ brokerMetrics.setActiveControllers(intValueOfOrNull(cluster.getMetric(MetricsConstants.ACTIVE_CONTROLLER_COUNT)));
|
|
|
+ brokerMetrics.setOnlinePartitionCount(intValueOfOrNull(cluster.getMetric(MetricsConstants.ONLINE_PARTITION_COUNT)));
|
|
|
+ brokerMetrics.setOfflinePartitionCount(intValueOfOrNull(cluster.getMetric(MetricsConstants.OFFLINE_PARTITION_COUNT)));
|
|
|
+ brokerMetrics.setUnderReplicatedPartitionCount(intValueOfOrNull(cluster.getMetric(MetricsConstants.UNDER_REPLICATED_PARTITIONS)));
|
|
|
+
|
|
|
+ return Mono.just(ResponseEntity.ok(brokerMetrics));
|
|
|
+ }
|
|
|
+
|
|
|
public List<KafkaCluster> getKafkaClusters() {
|
|
|
return kafkaClusters;
|
|
|
}
|
|
@@ -62,6 +85,4 @@ public class ClusterService {
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|