add isr count and out of sync replicas count

This commit is contained in:
Zhenya Taran 2020-03-01 12:52:11 +02:00
parent ef39834651
commit 01c2c8b20b
4 changed files with 13 additions and 24 deletions

View file

@ -38,7 +38,7 @@ public class KafkaCluster {
Exception lastKafkaException;
Exception lastZookeeperException;
public TopicDetails getTopicDetails(String key) {
public TopicDetails getOrCreateTopicDetails(String key) {
var topicDetails = topicDetailsMap.get(key);
if(topicDetails == null) {
topicDetailsMap.putIfAbsent(key, new TopicDetails());

View file

@ -44,7 +44,7 @@ public class ClusterService {
public Mono<ResponseEntity<TopicDetails>> getTopicDetails(String clusterId, String topicName) {
KafkaCluster cluster = clustersStorage.getClusterById(clusterId);
if (cluster == null) return null;
return Mono.just(ResponseEntity.ok(cluster.getTopicDetails(topicName)));
return Mono.just(ResponseEntity.ok(cluster.getOrCreateTopicDetails(topicName)));
}
public Mono<ResponseEntity<Flux<TopicConfig>>> getTopicConfigs(String clusterId, String topicName) {

View file

@ -134,6 +134,8 @@ public class KafkaService {
kafkaCluster.getBrokersMetrics().setOnlinePartitionCount(0);
kafkaCluster.getBrokersMetrics().setOfflinePartitionCount(0);
kafkaCluster.getBrokersMetrics().setUnderReplicatedPartitionCount(0);
kafkaCluster.getBrokersMetrics().setInSyncReplicasCount(0);
kafkaCluster.getBrokersMetrics().setOutOfSyncReplicasCount(0);
}
private Topic collectTopicData(KafkaCluster kafkaCluster, TopicDescription topicDescription) {
@ -177,12 +179,17 @@ public class KafkaService {
kafkaCluster.getBrokersMetrics().setOfflinePartitionCount(kafkaCluster.getBrokersMetrics().getOfflinePartitionCount() + 1);
}
}
kafkaCluster.getCluster().setOnlinePartitionCount(kafkaCluster.getBrokersMetrics().getOnlinePartitionCount());
kafkaCluster.getBrokersMetrics().setUnderReplicatedPartitionCount(
kafkaCluster.getBrokersMetrics().getUnderReplicatedPartitionCount() + urpCount);
topic.setPartitions(partitions);
kafkaCluster.getBrokersMetrics().setInSyncReplicasCount(
kafkaCluster.getBrokersMetrics().getInSyncReplicasCount() + inSyncReplicasCount);
kafkaCluster.getBrokersMetrics().setOutOfSyncReplicasCount(
kafkaCluster.getBrokersMetrics().getOutOfSyncReplicasCount() + (replicasCount - inSyncReplicasCount));
TopicDetails topicDetails = kafkaCluster.getTopicDetails(topicDescription.name());
topic.setPartitions(partitions);
TopicDetails topicDetails = kafkaCluster.getOrCreateTopicDetails(topicDescription.name());
topicDetails.setReplicas(replicasCount);
topicDetails.setPartitionCount(topicDescription.partitions().size());
topicDetails.setInSyncReplicas(inSyncReplicasCount);

View file

@ -206,10 +206,6 @@ components:
BrokersMetrics:
type: object
properties:
clusterId:
type: string
bytesInPerSec:
type: integer
brokerCount:
type: integer
zooKeeperStatus:
@ -218,29 +214,15 @@ components:
type: integer
uncleanLeaderElectionCount:
type: integer
networkPoolUsage:
type: number
requestPoolUsage:
type: number
onlinePartitionCount:
type: integer
underReplicatedPartitionCount:
type: integer
offlinePartitionCount:
type: integer
diskUsage:
$ref: '#/components/schemas/DiskUsage'
diskUsageDistribution:
type: string
required:
- id
DiskUsage:
type: object
properties:
brokerId:
inSyncReplicasCount:
type: integer
segmentSize:
outOfSyncReplicasCount:
type: integer
Topic: