77 "context"
88 "errors"
99 "fmt"
10+ "os"
1011 "strings"
1112 "time"
1213
@@ -30,10 +31,9 @@ const (
3031 // kmJobName needs to be "containerInsightsKueueMetricsScraper" so metric translator tags the source as the container insights receiver
3132 kmJobName = "containerInsightsKueueMetricsScraper"
3233 kueueNamespace = "kueue-system"
34+ kueueService = "kueue-controller-manager-metrics-service"
3335 kueueNameLabelSelector = "app.kubernetes.io/name=kueue"
3436 kueueComponentLabelSelector = "app.kubernetes.io/component=controller"
35- kueueServiceFieldSelector = "metadata.name=kueue-controller-manager-metrics-service"
36- kueueMetricsLogStream = "kubernetes-kueue"
3737
3838 serviceAccountTokenDefaultPath = "/var/run/secrets/kubernetes.io/serviceaccount/token" // #nosec
3939)
@@ -104,20 +104,20 @@ func NewKueuePrometheusScraper(opts KueuePrometheusScraperOpts) (*KueuePrometheu
104104 MetricsPath : "/metrics" ,
105105 ServiceDiscoveryConfigs : discovery.Configs {
106106 & kubernetes.SDConfig {
107- Role : kubernetes .RoleService ,
107+ Role : kubernetes .RoleEndpointSlice ,
108108 NamespaceDiscovery : kubernetes.NamespaceDiscovery {
109109 Names : []string {kueueNamespace },
110110 },
111111 Selectors : []kubernetes.SelectorConfig {
112112 {
113- Role : kubernetes .RoleService ,
113+ Role : kubernetes .RoleEndpointSlice ,
114114 Label : fmt .Sprintf ("%s,%s" , kueueNameLabelSelector , kueueComponentLabelSelector ),
115- Field : kueueServiceFieldSelector ,
116115 },
117116 },
118117 },
119118 },
120- MetricRelabelConfigs : GetKueueRelabelConfigs (opts .ClusterName ),
119+ RelabelConfigs : GetKueueRelabelConfigs (),
120+ MetricRelabelConfigs : GetKueueMetricRelabelConfigs (opts .ClusterName ),
121121 }
122122
123123 promConfig := prometheusreceiver.Config {
@@ -146,7 +146,23 @@ func NewKueuePrometheusScraper(opts KueuePrometheusScraperOpts) (*KueuePrometheu
146146 }, nil
147147}
148148
149- func GetKueueRelabelConfigs (clusterName string ) []* relabel.Config {
149+ func GetKueueRelabelConfigs () []* relabel.Config {
150+ relabelConfigs := []* relabel.Config {
151+ { // Limit scraping to the kueue controller manager service
152+ Action : relabel .Keep ,
153+ Regex : relabel .MustNewRegexp (fmt .Sprintf ("^%s.*" , kueueService )),
154+ SourceLabels : model.LabelNames {"__meta_kubernetes_endpointslice_name" },
155+ },
156+ { // Limit scraping to only the collector running on the same node as the kueue controller manager
157+ Action : relabel .Keep ,
158+ Regex : relabel .MustNewRegexp (os .Getenv ("HOST_NAME" )),
159+ SourceLabels : model.LabelNames {"__meta_kubernetes_endpointslice_endpoint_node_name" },
160+ },
161+ }
162+ return relabelConfigs
163+ }
164+
165+ func GetKueueMetricRelabelConfigs (clusterName string ) []* relabel.Config {
150166 relabelConfigs := []* relabel.Config {
151167 { // filter by metric name: keep only the Kueue metrics specified via regex in `kueueMetricAllowList`
152168 Action : relabel .Keep ,
0 commit comments