ソースを参照

fix: Preserve total costs during ProportionalAssetResourceCosts aggregation

When aggregating ProportionalAssetResourceCost entries via the Insert() method,
only the proportional costs were being preserved, while the total cost fields
(CPUTotalCost, RAMTotalCost, etc.) were being lost. This caused ComputePercentages()
to divide proportional costs by zero, resulting in NaN values.

This fix ensures total costs are also aggregated during insertion, preventing
NaN warnings in the logs during allocation aggregation.
Claude 6 ヶ月 前
コミット
f308397891
1 ファイル変更6 行追加0 行削除
  1. 6 0
      core/pkg/opencost/allocation.go

+ 6 - 0
core/pkg/opencost/allocation.go

@@ -480,6 +480,12 @@ func (parcs ProportionalAssetResourceCosts) Insert(parc ProportionalAssetResourc
 			GPUProportionalCost:          curr.GPUProportionalCost + parc.GPUProportionalCost,
 			PVProportionalCost:           curr.PVProportionalCost + parc.PVProportionalCost,
 			LoadBalancerProportionalCost: curr.LoadBalancerProportionalCost + parc.LoadBalancerProportionalCost,
+			// Preserve total costs during aggregation to prevent NaN values in ComputePercentages
+			CPUTotalCost:          curr.CPUTotalCost + parc.CPUTotalCost,
+			RAMTotalCost:          curr.RAMTotalCost + parc.RAMTotalCost,
+			GPUTotalCost:          curr.GPUTotalCost + parc.GPUTotalCost,
+			PVTotalCost:           curr.PVTotalCost + parc.PVTotalCost,
+			LoadBalancerTotalCost: curr.LoadBalancerTotalCost + parc.LoadBalancerTotalCost,
 		}
 
 		ComputePercentages(&toInsert)