Răsfoiți Sursa

DBG log if "No Athena Bucket configured" (#3436)

Signed-off-by: thomasvn <thomasvn.dev@gmail.com>
Thomas Nguyen 6 luni în urmă
părinte
comite
5ae5e07e2b
1 a modificat fișierele cu 18 adăugiri și 4 ștergeri
  1. 18 4
      pkg/cloud/aws/provider.go

+ 18 - 4
pkg/cloud/aws/provider.go

@@ -70,6 +70,8 @@ var (
 	versionRx     = regexp.MustCompile(`^#Version: (\\d+)\\.\\d+$`)
 	regionRx      = regexp.MustCompile("([a-z]+-[a-z]+-[0-9])")
 
+	ErrNoAthenaBucket = errors.New("No Athena Bucket configured")
+
 	// StorageClassProvisionerDefaults specifies the default storage class types depending upon the provisioner
 	StorageClassProvisionerDefaults = map[string]string{
 		"kubernetes.io/aws-ebs": "gp2",
@@ -896,10 +898,18 @@ func (aws *AWS) DownloadPricingData() error {
 
 	// RIDataRunning establishes the existence of the goroutine. Since it's possible we
 	// run multiple downloads, we don't want to create multiple go routines if one already exists
+	//
+	// If athenaBucketName is unconfigured, the ReservedInstanceData and SavingsPlanData watchers
+	// are skipped. Note: These watchers are less commonly used. It is recommended to use the full
+	// CloudCosts feature via athenaintegration.go.
 	if !aws.RIDataRunning {
 		err = aws.GetReservationDataFromAthena() // Block until one run has completed.
 		if err != nil {
-			log.Errorf("Failed to lookup reserved instance data: %s", err.Error())
+			if errors.Is(err, ErrNoAthenaBucket) {
+				log.Debugf("No \"athenaBucketName\" configured, ReservedInstanceData watcher will not run")
+			} else {
+				log.Errorf("Failed to lookup reserved instance data: %s", err.Error())
+			}
 		} else { // If we make one successful run, check on new reservation data every hour
 			go func() {
 				defer errs.HandlePanic()
@@ -919,7 +929,11 @@ func (aws *AWS) DownloadPricingData() error {
 	if !aws.SavingsPlanDataRunning {
 		err = aws.GetSavingsPlanDataFromAthena()
 		if err != nil {
-			log.Errorf("Failed to lookup savings plan data: %s", err.Error())
+			if errors.Is(err, ErrNoAthenaBucket) {
+				log.Debugf("No \"athenaBucketName\" configured, SavingsPlanData watcher will not run")
+			} else {
+				log.Errorf("Failed to lookup savings plan data: %s", err.Error())
+			}
 		} else {
 			go func() {
 				defer errs.HandlePanic()
@@ -2039,7 +2053,7 @@ func (aws *AWS) GetSavingsPlanDataFromAthena() error {
 		return err
 	}
 	if cfg.AthenaBucketName == "" {
-		err = fmt.Errorf("No Athena Bucket configured")
+		err = ErrNoAthenaBucket
 		aws.RIPricingError = err
 		return err
 	}
@@ -2136,7 +2150,7 @@ func (aws *AWS) GetReservationDataFromAthena() error {
 		return err
 	}
 	if cfg.AthenaBucketName == "" {
-		err = fmt.Errorf("No Athena Bucket configured")
+		err = ErrNoAthenaBucket
 		aws.RIPricingError = err
 		return err
 	}