|
|
@@ -587,8 +587,8 @@ func ClusterLoadBalancers(cp cloud.Provider, client prometheus.Client, duration,
|
|
|
hourlyToCumulative := float64(minsPerResolution) * (1.0 / 60.0)
|
|
|
|
|
|
ctx := prom.NewContext(client)
|
|
|
- queryLBCost := fmt.Sprintf(`sum_over_time((avg(kubecost_load_balancer_cost) by (namespace, service_name, cluster_id))[%s:%dm]%s) * %f`, durationStr, minsPerResolution, offsetStr, hourlyToCumulative)
|
|
|
- queryActiveMins := fmt.Sprintf(`count(kubecost_load_balancer_cost) by (namespace, service_name, cluster_id)[%s:%dm]%s`, durationStr, minsPerResolution, offsetStr)
|
|
|
+ queryLBCost := fmt.Sprintf(`sum_over_time((avg(kubecost_load_balancer_cost) by (namespace, service_name, cluster_id, ingress_ip))[%s:%dm]%s) * %f`, durationStr, minsPerResolution, offsetStr, hourlyToCumulative)
|
|
|
+ queryActiveMins := fmt.Sprintf(`count(kubecost_load_balancer_cost) by (namespace, service_name, cluster_id, ingress_ip)[%s:%dm]%s`, durationStr, minsPerResolution, offsetStr)
|
|
|
|
|
|
resChLBCost := ctx.Query(queryLBCost)
|
|
|
resChActiveMins := ctx.Query(queryActiveMins)
|
|
|
@@ -617,17 +617,27 @@ func ClusterLoadBalancers(cp cloud.Provider, client prometheus.Client, duration,
|
|
|
log.Warningf("ClusterLoadBalancers: LB cost data missing service_name")
|
|
|
continue
|
|
|
}
|
|
|
- providerID := ""
|
|
|
+ providerID, err := result.GetString("ingress_ip")
|
|
|
+ if err != nil {
|
|
|
+ log.Warningf("ClusterLoadBalancers: LB cost data missing ingress_ip")
|
|
|
+ providerID = ""
|
|
|
+ } else {
|
|
|
+ providerID = cp.ParseLBID(providerID)
|
|
|
+ }
|
|
|
lbCost := result.Values[0].Value
|
|
|
|
|
|
+
|
|
|
key := fmt.Sprintf("%s/%s/%s", cluster, namespace, serviceName)
|
|
|
if _, ok := loadBalancerMap[key]; !ok {
|
|
|
loadBalancerMap[key] = &LoadBalancer{
|
|
|
Cluster: cluster,
|
|
|
Name: namespace + "/" + serviceName,
|
|
|
- ProviderID: providerID, // cp.ParseID(providerID) if providerID does get recorded later
|
|
|
+ ProviderID: cp.ParseLBID(providerID),
|
|
|
}
|
|
|
}
|
|
|
+ if providerID != "" && loadBalancerMap[key].ProviderID == ""{
|
|
|
+ loadBalancerMap[key].ProviderID = providerID
|
|
|
+ }
|
|
|
loadBalancerMap[key].Cost += lbCost
|
|
|
}
|
|
|
|