Ver código fonte

Merge pull request #434 from kubecost/develop

Merge develop into master
Ajay Tripathy 6 anos atrás
pai
commit
bbc23b0f08
2 arquivos alterados com 12 adições e 14 exclusões
  1. 2 13
      pkg/costmodel/cluster.go
  2. 10 1
      pkg/costmodel/costmodel.go

+ 2 - 13
pkg/costmodel/cluster.go

@@ -7,7 +7,6 @@ import (
 	"time"
 
 	"github.com/kubecost/cost-model/pkg/cloud"
-	"github.com/kubecost/cost-model/pkg/log"
 	"github.com/kubecost/cost-model/pkg/prom"
 	"github.com/kubecost/cost-model/pkg/util"
 	prometheus "github.com/prometheus/client_golang/api"
@@ -146,7 +145,7 @@ func ComputeClusterCosts(client prometheus.Client, provider cloud.Provider, wind
 	hourlyToCumulative := float64(minsPerResolution) * (1.0 / 60.0)
 
 	const fmtQueryDataCount = `
-		count_over_time(sum(kube_node_status_capacity_cpu_cores) by (cluster_id)[%s:1m]%s)
+		count_over_time(sum(kube_node_status_capacity_cpu_cores) by (cluster_id)[%s:%dm]%s) * %d
 	`
 
 	const fmtQueryTotalGPU = `
@@ -207,18 +206,12 @@ func ComputeClusterCosts(client prometheus.Client, provider cloud.Provider, wind
 		fmtOffset = fmt.Sprintf("offset %s", offset)
 	}
 
-	queryDataCount := fmt.Sprintf(fmtQueryDataCount, window, fmtOffset)
+	queryDataCount := fmt.Sprintf(fmtQueryDataCount, window, minsPerResolution, fmtOffset, minsPerResolution)
 	queryTotalGPU := fmt.Sprintf(fmtQueryTotalGPU, window, minsPerResolution, fmtOffset, hourlyToCumulative)
 	queryTotalCPU := fmt.Sprintf(fmtQueryTotalCPU, window, minsPerResolution, fmtOffset, window, minsPerResolution, fmtOffset, hourlyToCumulative)
 	queryTotalRAM := fmt.Sprintf(fmtQueryTotalRAM, window, minsPerResolution, fmtOffset, window, minsPerResolution, fmtOffset, hourlyToCumulative)
 	queryTotalStorage := fmt.Sprintf(fmtQueryTotalStorage, window, minsPerResolution, fmtOffset, window, minsPerResolution, fmtOffset, hourlyToCumulative)
 
-	log.Infof("ComputeClusterCosts: queryDataCount: %s", queryDataCount)
-	log.Infof("ComputeClusterCosts: queryTotalGPU: %s", queryTotalGPU)
-	log.Infof("ComputeClusterCosts: queryTotalCPU: %s", queryTotalCPU)
-	log.Infof("ComputeClusterCosts: queryTotalRAM: %s", queryTotalRAM)
-	log.Infof("ComputeClusterCosts: queryTotalStorage: %s", queryTotalStorage)
-
 	ctx := prom.NewContext(client)
 
 	resChs := ctx.QueryAll(
@@ -235,10 +228,6 @@ func ComputeClusterCosts(client prometheus.Client, provider cloud.Provider, wind
 		queryRAMSystemPct := fmt.Sprintf(fmtQueryRAMSystemPct, window, minsPerResolution, fmtOffset, window, minsPerResolution, fmtOffset)
 		queryRAMUserPct := fmt.Sprintf(fmtQueryRAMUserPct, window, minsPerResolution, fmtOffset, window, minsPerResolution, fmtOffset)
 
-		log.Infof("ComputeClusterCosts: queryCPUModePct: %s", queryCPUModePct)
-		log.Infof("ComputeClusterCosts: queryRAMSystemPct: %s", queryRAMSystemPct)
-		log.Infof("ComputeClusterCosts: queryRAMUserPct: %s", queryRAMUserPct)
-
 		bdResChs := ctx.QueryAll(
 			queryCPUModePct,
 			queryRAMSystemPct,

+ 10 - 1
pkg/costmodel/costmodel.go

@@ -2685,10 +2685,15 @@ type ContainerMetric struct {
 	ContainerName string
 	NodeName      string
 	ClusterID     string
+	key           string
 }
 
 func (c *ContainerMetric) Key() string {
-	return c.Namespace + "," + c.PodName + "," + c.ContainerName + "," + c.NodeName + "," + c.ClusterID
+	return c.key
+}
+
+func containerMetricKey(ns, podName, containerName, nodeName, clusterID string) string {
+	return ns + "," + podName + "," + containerName + "," + nodeName + "," + clusterID
 }
 
 func NewContainerMetricFromKey(key string) (*ContainerMetric, error) {
@@ -2700,6 +2705,7 @@ func NewContainerMetricFromKey(key string) (*ContainerMetric, error) {
 			ContainerName: s[2],
 			NodeName:      s[3],
 			ClusterID:     s[4],
+			key:           key,
 		}, nil
 	}
 	return nil, fmt.Errorf("Not a valid key")
@@ -2712,6 +2718,7 @@ func newContainerMetricFromValues(ns string, podName string, containerName strin
 		ContainerName: containerName,
 		NodeName:      nodeName,
 		ClusterID:     clusterId,
+		key:           containerMetricKey(ns, podName, containerName, nodeName, clusterId),
 	}
 }
 
@@ -2728,6 +2735,7 @@ func newContainerMetricsFromPod(pod v1.Pod, clusterID string) ([]*ContainerMetri
 			ContainerName: containerName,
 			NodeName:      node,
 			ClusterID:     clusterID,
+			key:           containerMetricKey(ns, podName, containerName, node, clusterID),
 		})
 	}
 	return cs, nil
@@ -2782,6 +2790,7 @@ func newContainerMetricFromPrometheus(metrics map[string]interface{}, defaultClu
 		Namespace:     namespace,
 		NodeName:      nodeName,
 		ClusterID:     clusterID,
+		key:           containerMetricKey(namespace, podName, containerName, nodeName, clusterID),
 	}, nil
 }