Browse Source

CostModel.ComputeAllocation: efficiency

Niko Kovacevic 5 years ago
parent
commit
a70aca7532
1 changed files with 15 additions and 3 deletions
  1. 15 3
      pkg/costmodel/allocation.go

+ 15 - 3
pkg/costmodel/allocation.go

@@ -443,6 +443,20 @@ func (cm *CostModel) ComputeAllocation(start, end time.Time) (*kubecost.Allocati
 		alloc.TotalCost += alloc.SharedCost
 		alloc.TotalCost += alloc.SharedCost
 		alloc.TotalCost += alloc.ExternalCost
 		alloc.TotalCost += alloc.ExternalCost
 
 
+		if alloc.RAMBytesRequestAverage > 0 {
+			alloc.RAMEfficiency = alloc.RAMBytesUsageAverage / alloc.RAMBytesRequestAverage
+		}
+
+		if alloc.CPUCoreRequestAverage > 0 {
+			alloc.CPUEfficiency = alloc.CPUCoreUsageAverage / alloc.CPUCoreRequestAverage
+		}
+
+		if alloc.CPUCost+alloc.RAMCost > 0 {
+			ramCostEff := alloc.RAMEfficiency * alloc.RAMCost
+			cpuCostEff := alloc.CPUEfficiency * alloc.CPUCost
+			alloc.TotalEfficiency = (ramCostEff + cpuCostEff) / (alloc.CPUCost + alloc.RAMCost)
+		}
+
 		allocSet.Set(alloc)
 		allocSet.Set(alloc)
 	}
 	}
 
 
@@ -1296,7 +1310,7 @@ func applyPVCBytesRequested(pvcMap map[pvcKey]*PVC, resPVCBytesRequested []*prom
 		}
 		}
 
 
 		if _, ok := pvcMap[key]; !ok {
 		if _, ok := pvcMap[key]; !ok {
-			log.Warningf("CostModel.ComputeAllocation: PVC bytes requested result for missing PVC: %s", err)
+			log.Warningf("CostModel.ComputeAllocation: PVC bytes requested result for missing PVC: %s", key)
 			continue
 			continue
 		}
 		}
 
 
@@ -1363,8 +1377,6 @@ func applyUnmountedPVs(window kubecost.Window, allocationMap map[containerKey]*k
 			}
 			}
 		}
 		}
 
 
-		log.Infof("CostModel.ComputeAllocation: PV %s is mounted? %t", pv.Name, mounted)
-
 		if !mounted {
 		if !mounted {
 			gib := pv.Bytes / 1024 / 1024 / 1024
 			gib := pv.Bytes / 1024 / 1024 / 1024
 			hrs := window.Minutes() / 60.0
 			hrs := window.Minutes() / 60.0