소스 검색

Prom refactor: fix and move last of the prom parsers

Niko Kovacevic 5 년 전
부모
커밋
784c1db7b1
2개의 변경된 파일57개의 추가작업 그리고 63개의 파일을 삭제
  1. 0 63
      pkg/costmodel/costmodel.go
  2. 57 0
      pkg/costmodel/promparsers.go

+ 0 - 63
pkg/costmodel/costmodel.go

@@ -2151,69 +2151,6 @@ type PersistentVolumeClaimData struct {
 	Values     []*util.Vector        `json:"values"`
 }
 
-func getCost(qr interface{}) (map[string][]*util.Vector, error) {
-	toReturn := make(map[string][]*util.Vector)
-
-	// TODO: Pass actual query instead of getCost
-	result, err := prom.NewQueryResults("getCost", qr)
-	if err != nil {
-		return toReturn, err
-	}
-
-	for _, val := range result.Results {
-		instance, err := val.GetString("instance")
-		if err != nil {
-			return toReturn, err
-		}
-
-		toReturn[instance] = val.Values
-	}
-
-	return toReturn, nil
-}
-
-func GetContainerMetricVector(qrs []*prom.QueryResult, normalize bool, normalizationValue float64, defaultClusterID string) (map[string][]*util.Vector, error) {
-	containerData := make(map[string][]*util.Vector)
-	for _, val := range qrs {
-		containerMetric, err := NewContainerMetricFromPrometheus(val.Metric, defaultClusterID)
-		if err != nil {
-			return nil, err
-		}
-
-		if normalize && normalizationValue != 0 {
-			for _, v := range val.Values {
-				v.Value = v.Value / normalizationValue
-			}
-		}
-		containerData[containerMetric.Key()] = val.Values
-	}
-	return containerData, nil
-}
-
-func GetContainerMetricVectors(qrs []*prom.QueryResult, defaultClusterID string) (map[string][]*util.Vector, error) {
-	containerData := make(map[string][]*util.Vector)
-	for _, val := range qrs {
-		containerMetric, err := NewContainerMetricFromPrometheus(val.Metric, defaultClusterID)
-		if err != nil {
-			return nil, err
-		}
-		containerData[containerMetric.Key()] = val.Values
-	}
-	return containerData, nil
-}
-
-func GetNormalizedContainerMetricVectors(qrs []*prom.QueryResult, normalizationValues []*util.Vector, defaultClusterID string) (map[string][]*util.Vector, error) {
-	containerData := make(map[string][]*util.Vector)
-	for _, val := range qrs {
-		containerMetric, err := NewContainerMetricFromPrometheus(val.Metric, defaultClusterID)
-		if err != nil {
-			return nil, err
-		}
-		containerData[containerMetric.Key()] = util.NormalizeVectorByVector(val.Values, normalizationValues)
-	}
-	return containerData, nil
-}
-
 func measureTime(start time.Time, threshold time.Duration, name string) {
 	elapsed := time.Since(start)
 	if elapsed > threshold {

+ 57 - 0
pkg/costmodel/promparsers.go

@@ -331,6 +331,63 @@ func GetServiceSelectorLabelsMetrics(qrs []*prom.QueryResult, defaultClusterID s
 	return toReturn, nil
 }
 
+func GetContainerMetricVector(qrs []*prom.QueryResult, normalize bool, normalizationValue float64, defaultClusterID string) (map[string][]*util.Vector, error) {
+	containerData := make(map[string][]*util.Vector)
+	for _, val := range qrs {
+		containerMetric, err := NewContainerMetricFromPrometheus(val.Metric, defaultClusterID)
+		if err != nil {
+			return nil, err
+		}
+
+		if normalize && normalizationValue != 0 {
+			for _, v := range val.Values {
+				v.Value = v.Value / normalizationValue
+			}
+		}
+		containerData[containerMetric.Key()] = val.Values
+	}
+	return containerData, nil
+}
+
+func GetContainerMetricVectors(qrs []*prom.QueryResult, defaultClusterID string) (map[string][]*util.Vector, error) {
+	containerData := make(map[string][]*util.Vector)
+	for _, val := range qrs {
+		containerMetric, err := NewContainerMetricFromPrometheus(val.Metric, defaultClusterID)
+		if err != nil {
+			return nil, err
+		}
+		containerData[containerMetric.Key()] = val.Values
+	}
+	return containerData, nil
+}
+
+func GetNormalizedContainerMetricVectors(qrs []*prom.QueryResult, normalizationValues []*util.Vector, defaultClusterID string) (map[string][]*util.Vector, error) {
+	containerData := make(map[string][]*util.Vector)
+	for _, val := range qrs {
+		containerMetric, err := NewContainerMetricFromPrometheus(val.Metric, defaultClusterID)
+		if err != nil {
+			return nil, err
+		}
+		containerData[containerMetric.Key()] = util.NormalizeVectorByVector(val.Values, normalizationValues)
+	}
+	return containerData, nil
+}
+
+func getCost(qrs []*prom.QueryResult) (map[string][]*util.Vector, error) {
+	toReturn := make(map[string][]*util.Vector)
+
+	for _, val := range qrs {
+		instance, err := val.GetString("instance")
+		if err != nil {
+			return toReturn, err
+		}
+
+		toReturn[instance] = val.Values
+	}
+
+	return toReturn, nil
+}
+
 // TODO niko/prom retain message:
 // normalization data is empty: time window may be invalid or kube-state-metrics or node-exporter may not be running
 func getNormalization(qrs []*prom.QueryResult) (float64, error) {