diff --git a/services/venice-controller/src/main/java/com/linkedin/venice/pushmonitor/PushMonitorUtils.java b/services/venice-controller/src/main/java/com/linkedin/venice/pushmonitor/PushMonitorUtils.java index 5a5a5507e2..0eb52dd8f2 100644 --- a/services/venice-controller/src/main/java/com/linkedin/venice/pushmonitor/PushMonitorUtils.java +++ b/services/venice-controller/src/main/java/com/linkedin/venice/pushmonitor/PushMonitorUtils.java @@ -89,13 +89,6 @@ public static ExecutionStatusWithDetails getDaVinciPushStatusAndDetails( Set incompleteInstanceList = new HashSet<>(); ExecutionStatus errorStatus = ExecutionStatus.ERROR; for (Map.Entry entry: instances.entrySet()) { - ExecutionStatus status = ExecutionStatus.valueOf(entry.getValue()); - // We will skip completed instances, as they have stopped emitting heartbeats and will not be counted as live - // instances. - if (status == completeStatus) { - completedInstanceCount++; - continue; - } PushStatusStoreReader.InstanceStatus instanceStatus = reader.getInstanceStatus(storeName, entry.getKey().toString()); if (instanceStatus.equals(PushStatusStoreReader.InstanceStatus.BOOTSTRAPPING)) { @@ -105,6 +98,13 @@ public static ExecutionStatusWithDetails getDaVinciPushStatusAndDetails( topicName); continue; } + ExecutionStatus status = ExecutionStatus.valueOf(entry.getValue()); + // We will skip completed instances, as they have stopped emitting heartbeats and will not be counted as live + // instances. + if (status == completeStatus) { + completedInstanceCount++; + continue; + } if (instanceStatus.equals(PushStatusStoreReader.InstanceStatus.DEAD)) { offlineInstanceCount++; // Keep at most 5 offline instances for logging purpose. @@ -249,13 +249,6 @@ public static ExecutionStatusWithDetails getDaVinciPartitionLevelPushStatusAndDe boolean allInstancesCompleted = true; totalReplicaCount += instances.size(); for (Map.Entry entry: instances.entrySet()) { - ExecutionStatus status = ExecutionStatus.valueOf(entry.getValue()); - // We will skip completed replicas, as they have stopped emitting heartbeats and will not be counted as live - // replicas. - if (status == completeStatus) { - completedReplicaCount++; - continue; - } String instanceName = entry.getKey().toString(); PushStatusStoreReader.InstanceStatus instanceStatus = instanceLivenessCache .computeIfAbsent(instanceName, ignored -> reader.getInstanceStatus(storeName, instanceName)); @@ -269,6 +262,14 @@ public static ExecutionStatusWithDetails getDaVinciPartitionLevelPushStatusAndDe partitionId); continue; } + + ExecutionStatus status = ExecutionStatus.valueOf(entry.getValue()); + // We will skip completed replicas, as they have stopped emitting heartbeats and will not be counted as live + // replicas. + if (status == completeStatus) { + completedReplicaCount++; + continue; + } if (instanceStatus.equals(PushStatusStoreReader.InstanceStatus.DEAD)) { // Keep at most 5 offline instances for logging purpose. if (offlineInstanceList.size() < 5) {