فهرست منبع

Cleanup + configurable configmap name

Kaelan Patel 4 سال پیش
والد
کامیت
9d01e07ee9
3فایلهای تغییر یافته به همراه14 افزوده شده و 16 حذف شده
  1. 2 7
      pkg/costmodel/metrics.go
  2. 5 0
      pkg/env/costmodelenv.go
  3. 7 9
      pkg/metrics/metricsconfig.go

+ 2 - 7
pkg/costmodel/metrics.go

@@ -323,17 +323,12 @@ type CostModelMetricsEmitter struct {
 // NewCostModelMetricsEmitter creates a new cost-model metrics emitter. Use Start() to begin metric emission.
 func NewCostModelMetricsEmitter(promClient promclient.Client, clusterCache clustercache.ClusterCache, provider cloud.Provider, clusterInfo clusters.ClusterInfoProvider, model *CostModel) *CostModelMetricsEmitter {
 
+	// Get metric configurations, if any
 	metricsConfig, err := metrics.GetMetricsConfig()
 	if err != nil {
-		log.Infof("Failed to get metrics configuration: %s", err)
+		log.Infof("Failed to get metrics config before init: %s", err)
 	}
 
-	log.Infof("--DISABLED LABELS--")
-	for i := range metricsConfig.DisabledMetrics {
-		log.Infof("DISABLE LABEL: %s", metricsConfig.DisabledMetrics[i])
-	}
-	log.Infof("-------------------")
-
 	// init will only actually execute once to register the custom gauges
 	initCostModelMetrics(clusterCache, provider, clusterInfo, metricsConfig)
 

+ 5 - 0
pkg/env/costmodelenv.go

@@ -76,6 +76,7 @@ const (
 	PromClusterIDLabelEnvVar = "PROM_CLUSTER_ID_LABEL"
 
 	PricingConfigmapName  = "PRICING_CONFIGMAP_NAME"
+	MetricsConfigmapName  = "METRICS_CONFIGMAP_NAME"
 	KubecostJobNameEnvVar = "KUBECOST_JOB_NAME"
 
 	KubecostConfigBucketEnvVar    = "KUBECOST_CONFIG_BUCKET"
@@ -126,6 +127,10 @@ func GetPricingConfigmapName() string {
 	return Get(PricingConfigmapName, "pricing-configs")
 }
 
+func GetMetricsConfigmapName() string {
+	return Get(MetricsConfigmapName, "metrics-config")
+}
+
 // GetAWSAccessKeyID returns the environment variable value for AWSAccessKeyIDEnvVar which represents
 // the AWS access key for authentication
 func GetAppVersion() string {

+ 7 - 9
pkg/metrics/metricsconfig.go

@@ -7,9 +7,8 @@ import (
 	"os"
 	"sync"
 
-	"github.com/kubecost/cost-model/pkg/log"
+	"github.com/kubecost/cost-model/pkg/env"
 	"github.com/kubecost/cost-model/pkg/util/watcher"
-	"k8s.io/klog"
 )
 
 var metricsConfigLock = new(sync.Mutex)
@@ -18,17 +17,18 @@ type MetricsConfig struct {
 	DisabledMetrics []string `json:"disabledMetrics"`
 }
 
+// Gets map of disabled metrics to empty structs
 func (mc MetricsConfig) GetDisabledMetricsMap() map[string]struct{} {
 	disabledMetricsMap := make(map[string]struct{})
 
 	for i := range mc.DisabledMetrics {
 		disabledMetricsMap[mc.DisabledMetrics[i]] = struct{}{}
-		log.Infof("Adding disabled metric %s", mc.DisabledMetrics[i])
 	}
 
 	return disabledMetricsMap
 }
 
+// Unmarshals metrics.json to a MetricsConfig struct
 func GetMetricsConfig() (*MetricsConfig, error) {
 	metricsConfigLock.Lock()
 	defer metricsConfigLock.Unlock()
@@ -49,6 +49,7 @@ func GetMetricsConfig() (*MetricsConfig, error) {
 	return mc, nil
 }
 
+// Writes MetricsConfig struct to json file
 func UpdateMetricsConfig(mc *MetricsConfig) (*MetricsConfig, error) {
 	metricsConfigLock.Lock()
 	defer metricsConfigLock.Unlock()
@@ -66,6 +67,7 @@ func UpdateMetricsConfig(mc *MetricsConfig) (*MetricsConfig, error) {
 	return mc, nil
 }
 
+// Updates metric config file from configmap
 func UpdateMetricsConfigFromConfigmap(data map[string]string) error {
 
 	mc := &MetricsConfig{}
@@ -90,15 +92,11 @@ func UpdateMetricsConfigFromConfigmap(data map[string]string) error {
 
 }
 
+// Returns ConfigMapWatcher for metrics configuration configmap
 func GetMetricsConfigWatcher() *watcher.ConfigMapWatcher {
 	return &watcher.ConfigMapWatcher{
-		ConfigMapName: "metrics-config", // temporary, use env
+		ConfigMapName: env.GetMetricsConfigmapName(),
 		WatchFunc: func(name string, data map[string]string) error {
-			klog.Infof("--CONFIGMAP DATA--")
-			for key, val := range data {
-				klog.Infof("%s : %s", key, val)
-			}
-			klog.Infof("------------------")
 			err := UpdateMetricsConfigFromConfigmap(data)
 			return err
 		},