AjayTripathy 7 лет назад
Родитель
Сommit
bd779830c9
3 измененных файлов с 20 добавлено и 17 удалено
  1. 2 2
      cloud/awsprovider.go
  2. 18 11
      cloud/gcpprovider.go
  3. 0 4
      costmodel/costmodel.go

+ 2 - 2
cloud/awsprovider.go

@@ -773,7 +773,7 @@ func parseSpotData(bucket string, prefix string, projectID string, region string
 	lsoLen := len(lso.Contents)
 	klog.V(2).Infof("Found %d spot data files from yesterday", lsoLen)
 	if lsoLen == 0 {
-		klog.V(5).Infof("ListObjects \"s3://%s/%s\" produced no keys", ls.Bucket, ls.Prefix)
+		klog.V(5).Infof("ListObjects \"s3://%s/%s\" produced no keys", *ls.Bucket, *ls.Prefix)
 	}
 	lso2, err := s3Svc.ListObjects(ls2)
 	if err != nil {
@@ -782,7 +782,7 @@ func parseSpotData(bucket string, prefix string, projectID string, region string
 	lso2Len := len(lso2.Contents)
 	klog.V(2).Infof("Found %d spot data files from today", lso2Len)
 	if lso2Len == 0 {
-		klog.V(5).Infof("ListObjects \"s3://%s/%s\" produced no keys", ls2.Bucket, ls2.Prefix)
+		klog.V(5).Infof("ListObjects \"s3://%s/%s\" produced no keys", *ls2.Bucket, *ls2.Prefix)
 	}
 
 	var keys []*string

+ 18 - 11
cloud/gcpprovider.go

@@ -87,8 +87,7 @@ func (gcp *GCP) ExternalAllocations(start string, end string) ([]*OutOfClusterAl
 						LEFT JOIN UNNEST(labels) as labels
 						ON labels.key = "kubernetes_namespace" OR labels.key = "kubernetes_container" OR labels.key = "kubernetes_deployment" OR labels.key = "kubernetes_pod" OR labels.key = "kubernetes_daemonset"
 				GROUP BY aggregator, environment, service;`, gcp.BillingDataDataset, start, end) // For example, "billing_data.gcp_billing_export_v1_01AC9F_74CF1D_5565A2"
-	klog.V(3).Infof("HERE IS THE PROJECT ID: %s", gcp.ProjectID)
-	klog.V(3).Infof("HERE IS THE QUERY STRING: %s", queryString)
+	klog.V(3).Infof("Querying \"%s\" with : %s", gcp.ProjectID, queryString)
 	return gcp.QuerySQL(queryString)
 }
 
@@ -226,7 +225,7 @@ type GCPResourceInfo struct {
 	UsageType          string `json:"usageType"`
 }
 
-func (gcp *GCP) parsePage(r io.Reader, inputKeys map[string]bool) (map[string]*GCPPricing, string) {
+func (gcp *GCP) parsePage(r io.Reader, inputKeys map[string]bool) (map[string]*GCPPricing, string, error) {
 	gcpPricingList := make(map[string]*GCPPricing)
 	var nextPageToken string
 	dec := json.NewDecoder(r)
@@ -236,14 +235,16 @@ func (gcp *GCP) parsePage(r io.Reader, inputKeys map[string]bool) (map[string]*G
 			break
 		}
 		if t == "skus" {
-			dec.Token() // [
+			_, err := dec.Token() // consumes [
+			if err != nil {
+				return nil, "", err
+			}
 			for dec.More() {
 
 				product := &GCPPricing{}
 				err := dec.Decode(&product)
 				if err != nil {
-					fmt.Printf("Error: " + err.Error())
-					break
+					return nil, "", err
 				}
 				usageType := strings.ToLower(product.Category.UsageType)
 				instanceType := strings.ToLower(product.Category.ResourceGroup)
@@ -314,7 +315,7 @@ func (gcp *GCP) parsePage(r io.Reader, inputKeys map[string]bool) (map[string]*G
 			pageToken, err := dec.Token()
 			if err != nil {
 				klog.V(2).Infof("Error parsing nextpage token: " + err.Error())
-				break
+				return nil, "", err
 			}
 			if pageToken.(string) != "" {
 				nextPageToken = pageToken.(string)
@@ -323,13 +324,13 @@ func (gcp *GCP) parsePage(r io.Reader, inputKeys map[string]bool) (map[string]*G
 			}
 		}
 	}
-	return gcpPricingList, nextPageToken
+	return gcpPricingList, nextPageToken, nil
 }
 
 func (gcp *GCP) parsePages(inputKeys map[string]bool) (map[string]*GCPPricing, error) {
 	var pages []map[string]*GCPPricing
-	url := "https://cloudbilling.googleapis.com/v1/services/6F81-5844-456A/skus?key=" + gcp.APIKey //AIzaSyDXQPG_MHUEy9neR7stolq6l0ujXmjJlvk
-	klog.V(2).Infof("URL: %s", url)
+	url := "https://cloudbilling.googleapis.com/v1/services/6F81-5844-456A/skus?key=" + gcp.APIKey
+	klog.V(2).Infof("Fetch GCP Billing Data from URL: %s", url)
 	var parsePagesHelper func(string) error
 	parsePagesHelper = func(pageToken string) error {
 		if pageToken == "done" {
@@ -341,11 +342,17 @@ func (gcp *GCP) parsePages(inputKeys map[string]bool) (map[string]*GCPPricing, e
 		if err != nil {
 			return err
 		}
-		page, token := gcp.parsePage(resp.Body, inputKeys)
+		page, token, err := gcp.parsePage(resp.Body, inputKeys)
+		if err != nil {
+			return err
+		}
 		pages = append(pages, page)
 		return parsePagesHelper(token)
 	}
 	err := parsePagesHelper("")
+	if err != nil {
+		return nil, err
+	}
 	returnPages := make(map[string]*GCPPricing)
 	for _, page := range pages {
 		for k, v := range page {

+ 0 - 4
costmodel/costmodel.go

@@ -466,9 +466,6 @@ func getPodServices(clientset kubernetes.Interface, podList *v1.PodList) (map[st
 			podServicesMapping[namespace] = make(map[string][]string)
 		}
 		s := labels.Set(service.Spec.Selector).AsSelectorPreValidated()
-		if err != nil {
-			klog.V(2).Infof("Error doing service label conversion: " + err.Error())
-		}
 		for _, pod := range podList.Items {
 			labelSet := labels.Set(pod.GetObjectMeta().GetLabels())
 			if s.Matches(labelSet) && pod.GetObjectMeta().GetNamespace() == namespace {
@@ -581,7 +578,6 @@ func ComputeCostDataRange(cli prometheusClient.Client, clientset kubernetes.Inte
 
 	nodes, err := getNodeCost(clientset, cloud)
 	if err != nil {
-		//return nil, err
 		klog.V(1).Infof("Warning, no cost model available: " + err.Error())
 	}