Просмотр исходного кода

add array length check before accessing lb.IngressIPAddresses

Calvin Wang 5 лет назад
Родитель
Сommit
fc003962ff
1 измененных файлов с 6 добавлено и 1 удалено
  1. 6 1
      pkg/costmodel/metrics.go

+ 6 - 1
pkg/costmodel/metrics.go

@@ -518,7 +518,12 @@ func StartCostModelMetricRecording(a *Accesses) bool {
 				keyParts := getLabelStringsFromKey(lbKey)
 				keyParts := getLabelStringsFromKey(lbKey)
 				namespace := keyParts[0]
 				namespace := keyParts[0]
 				serviceName := keyParts[1]
 				serviceName := keyParts[1]
-				ingressIP := lb.IngressIPAddresses[0] // assumes one ingress IP per load balancer
+				ingressIP := ""
+				if len(lb.IngressIPAddresses) > 0 {
+					ingressIP = lb.IngressIPAddresses[0] // assumes one ingress IP per load balancer
+				} else {
+					ingressIP = "N/A"
+				}
 				a.LBCostRecorder.WithLabelValues(ingressIP, namespace, serviceName).Set(lb.Cost)
 				a.LBCostRecorder.WithLabelValues(ingressIP, namespace, serviceName).Set(lb.Cost)
 
 
 				labelKey := getKeyFromLabelStrings(namespace, serviceName)
 				labelKey := getKeyFromLabelStrings(namespace, serviceName)