|
|
@@ -56,6 +56,7 @@ type Accesses struct {
|
|
|
RAMAllocationRecorder *prometheus.GaugeVec
|
|
|
CPUAllocationRecorder *prometheus.GaugeVec
|
|
|
GPUAllocationRecorder *prometheus.GaugeVec
|
|
|
+ PVAllocationRecorder *prometheus.GaugeVec
|
|
|
ContainerUptimeRecorder *prometheus.GaugeVec
|
|
|
ServiceSelectorRecorder *prometheus.GaugeVec
|
|
|
DeploymentSelectorRecorder *prometheus.GaugeVec
|
|
|
@@ -483,11 +484,16 @@ func (a *Accesses) recordPrices() {
|
|
|
|
|
|
totalCost := cpu*cpuCost + ramCost*(ram/1024/1024/1024) + gpu*gpuCost
|
|
|
|
|
|
+ namespace := costs.Namespace
|
|
|
+ podName := costs.PodName
|
|
|
+ containerName := costs.Name
|
|
|
+
|
|
|
if costs.PVCData != nil {
|
|
|
for _, pvc := range costs.PVCData {
|
|
|
if pvc.Volume != nil {
|
|
|
pvCost, _ := strconv.ParseFloat(pvc.Volume.Cost, 64)
|
|
|
a.PersistentVolumePriceRecorder.WithLabelValues(pvc.VolumeName, pvc.VolumeName).Set(pvCost)
|
|
|
+ a.PVAllocationRecorder.WithLabelValues(namespace, podName, pvc.Claim).Set(pvc.Values[0].Value)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -499,9 +505,6 @@ func (a *Accesses) recordPrices() {
|
|
|
labelKey := getKeyFromLabelStrings(nodeName, nodeName)
|
|
|
nodeSeen[labelKey] = true
|
|
|
|
|
|
- namespace := costs.Namespace
|
|
|
- podName := costs.PodName
|
|
|
- containerName := costs.Name
|
|
|
if len(costs.RAMAllocation) > 0 {
|
|
|
a.RAMAllocationRecorder.WithLabelValues(namespace, podName, containerName, nodeName, nodeName).Set(costs.RAMAllocation[0].Value)
|
|
|
}
|
|
|
@@ -684,6 +687,10 @@ func main() {
|
|
|
Name: "container_gpu_allocation",
|
|
|
Help: "container_gpu_allocation GPU used",
|
|
|
}, []string{"namespace", "pod", "container", "instance", "node"})
|
|
|
+ PVAllocation := prometheus.NewGaugeVec(prometheus.GaugeOpts{
|
|
|
+ Name: "pod_pvc_allocation",
|
|
|
+ Help: "pod_pvc_allocation Bytes used by a PVC attached to a pod",
|
|
|
+ }, []string{"namespace", "pod", "persistentvolumeclaim"})
|
|
|
|
|
|
ContainerUptimeRecorder := prometheus.NewGaugeVec(prometheus.GaugeOpts{
|
|
|
Name: "container_uptime_seconds",
|
|
|
@@ -698,6 +705,7 @@ func main() {
|
|
|
prometheus.MustRegister(RAMAllocation)
|
|
|
prometheus.MustRegister(CPUAllocation)
|
|
|
prometheus.MustRegister(ContainerUptimeRecorder)
|
|
|
+ prometheus.MustRegister(PVAllocation)
|
|
|
prometheus.MustRegister(costModel.ServiceCollector{
|
|
|
KubeClientSet: kubeClientset,
|
|
|
})
|
|
|
@@ -718,6 +726,7 @@ func main() {
|
|
|
RAMAllocationRecorder: RAMAllocation,
|
|
|
CPUAllocationRecorder: CPUAllocation,
|
|
|
GPUAllocationRecorder: GPUAllocation,
|
|
|
+ PVAllocationRecorder: PVAllocation,
|
|
|
ContainerUptimeRecorder: ContainerUptimeRecorder,
|
|
|
PersistentVolumePriceRecorder: pvGv,
|
|
|
Model: costModel.NewCostModel(podCache),
|