Merge pull request #110695 from lokichoggio/hpa

code optimization: deal with error first to prevent unnecessary computing
This commit is contained in:
Kubernetes Prow Robot 2022-09-01 17:52:04 -07:00 committed by GitHub
commit 5ade6c833f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -71,24 +71,22 @@ func (c *ReplicaCalculator) GetResourceReplicas(ctx context.Context, currentRepl
if err != nil {
return 0, 0, 0, time.Time{}, fmt.Errorf("unable to get pods while calculating replica count: %v", err)
}
itemsLen := len(podList)
if itemsLen == 0 {
if len(podList) == 0 {
return 0, 0, 0, time.Time{}, fmt.Errorf("no pods returned by selector while calculating replica count")
}
readyPodCount, unreadyPods, missingPods, ignoredPods := groupPods(podList, metrics, resource, c.cpuInitializationPeriod, c.delayOfInitialReadinessStatus)
removeMetricsForPods(metrics, ignoredPods)
removeMetricsForPods(metrics, unreadyPods)
if len(metrics) == 0 {
return 0, 0, 0, time.Time{}, fmt.Errorf("did not receive metrics for any ready pods")
}
requests, err := calculatePodRequests(podList, container, resource)
if err != nil {
return 0, 0, 0, time.Time{}, err
}
if len(metrics) == 0 {
return 0, 0, 0, time.Time{}, fmt.Errorf("did not receive metrics for any ready pods")
}
usageRatio, utilization, rawUtilization, err := metricsclient.GetResourceUtilizationRatio(metrics, requests, targetUtilization)
if err != nil {
return 0, 0, 0, time.Time{}, err