Просмотр исходного кода

Merge pull request #432 from kubecost/bolt/metric-key-optimization

ContainerMetric.Key() Optimization
Ajay Tripathy 6 лет назад
Родитель
Сommit
669f727360
1 измененных файлов с 10 добавлено и 1 удалено
  1. 10 1
      pkg/costmodel/costmodel.go

+ 10 - 1
pkg/costmodel/costmodel.go

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