Forráskód Böngészése

only emit node metrics for ksm

Ajay Tripathy 4 éve
szülő
commit
b94aa4c779
3 módosított fájl, 12 hozzáadás és 0 törlés
  1. 1 0
      pkg/costmodel/metrics.go
  2. 5 0
      pkg/env/costmodelenv.go
  3. 6 0
      pkg/metrics/kubemetrics.go

+ 1 - 0
pkg/costmodel/metrics.go

@@ -268,6 +268,7 @@ func NewCostModelMetricsEmitter(promClient promclient.Client, clusterCache clust
 		EmitNamespaceAnnotations:      env.IsEmitNamespaceAnnotationsMetric(),
 		EmitPodAnnotations:            env.IsEmitPodAnnotationsMetric(),
 		EmitKubeStateMetrics:          env.IsEmitKsmV1Metrics(),
+		EmitNodeKubeStateMetrisOnly:   env.IsEmitNodeKubeStateMetrisOnly(),
 	})
 
 	return &CostModelMetricsEmitter{

+ 5 - 0
pkg/env/costmodelenv.go

@@ -39,6 +39,7 @@ const (
 	EmitNamespaceAnnotationsMetricEnvVar = "EMIT_NAMESPACE_ANNOTATIONS_METRIC"
 
 	EmitKsmV1MetricsEnvVar = "EMIT_KSM_V1_METRICS"
+	EmitKsmNodeMetricsOnly = "EMIT_KSM_NODE_METRICS_ONLY"
 
 	ThanosEnabledEnvVar      = "THANOS_ENABLED"
 	ThanosQueryUrlEnvVar     = "THANOS_QUERY_URL"
@@ -104,6 +105,10 @@ func IsEmitKsmV1Metrics() bool {
 	return GetBool(EmitKsmV1MetricsEnvVar, true)
 }
 
+func IsEmitNodeKubeStateMetrisOnly() bool {
+	return GetBool(EmitKsmNodeMetricsOnly, true)
+}
+
 // GetAWSAccessKeyID returns the environment variable value for AWSAccessKeyIDEnvVar which represents
 // the AWS access key for authentication
 func GetAWSAccessKeyID() string {

+ 6 - 0
pkg/metrics/kubemetrics.go

@@ -28,6 +28,7 @@ type KubeMetricsOpts struct {
 	EmitNamespaceAnnotations      bool
 	EmitPodAnnotations            bool
 	EmitKubeStateMetrics          bool
+	EmitNodeKubeStateMetrisOnly   bool
 }
 
 // DefaultKubeMetricsOpts returns KubeMetricsOpts with default values set
@@ -37,6 +38,7 @@ func DefaultKubeMetricsOpts() *KubeMetricsOpts {
 		EmitNamespaceAnnotations:      false,
 		EmitPodAnnotations:            false,
 		EmitKubeStateMetrics:          true,
+		EmitNodeKubeStateMetrisOnly:   false,
 	}
 }
 
@@ -93,6 +95,10 @@ func InitKubeMetrics(clusterCache clustercache.ClusterCache, opts *KubeMetricsOp
 			prometheus.MustRegister(KubeJobCollector{
 				KubeClusterCache: clusterCache,
 			})
+		} else if opts.EmitNodeKubeStateMetrisOnly {
+			prometheus.MustRegister(KubeNodeCollector{
+				KubeClusterCache: clusterCache,
+			})
 		}
 	})
 }