7
7
"context"
8
8
"errors"
9
9
"fmt"
10
+ "os"
10
11
"strings"
11
12
"time"
12
13
@@ -30,10 +31,9 @@ const (
30
31
// kmJobName needs to be "containerInsightsKueueMetricsScraper" so metric translator tags the source as the container insights receiver
31
32
kmJobName = "containerInsightsKueueMetricsScraper"
32
33
kueueNamespace = "kueue-system"
34
+ kueueService = "kueue-controller-manager-metrics-service"
33
35
kueueNameLabelSelector = "app.kubernetes.io/name=kueue"
34
36
kueueComponentLabelSelector = "app.kubernetes.io/component=controller"
35
- kueueServiceFieldSelector = "metadata.name=kueue-controller-manager-metrics-service"
36
- kueueMetricsLogStream = "kubernetes-kueue"
37
37
38
38
serviceAccountTokenDefaultPath = "/var/run/secrets/kubernetes.io/serviceaccount/token" // #nosec
39
39
)
@@ -104,20 +104,20 @@ func NewKueuePrometheusScraper(opts KueuePrometheusScraperOpts) (*KueuePrometheu
104
104
MetricsPath : "/metrics" ,
105
105
ServiceDiscoveryConfigs : discovery.Configs {
106
106
& kubernetes.SDConfig {
107
- Role : kubernetes .RoleService ,
107
+ Role : kubernetes .RoleEndpointSlice ,
108
108
NamespaceDiscovery : kubernetes.NamespaceDiscovery {
109
109
Names : []string {kueueNamespace },
110
110
},
111
111
Selectors : []kubernetes.SelectorConfig {
112
112
{
113
- Role : kubernetes .RoleService ,
113
+ Role : kubernetes .RoleEndpointSlice ,
114
114
Label : fmt .Sprintf ("%s,%s" , kueueNameLabelSelector , kueueComponentLabelSelector ),
115
- Field : kueueServiceFieldSelector ,
116
115
},
117
116
},
118
117
},
119
118
},
120
- MetricRelabelConfigs : GetKueueRelabelConfigs (opts .ClusterName ),
119
+ RelabelConfigs : GetKueueRelabelConfigs (),
120
+ MetricRelabelConfigs : GetKueueMetricRelabelConfigs (opts .ClusterName ),
121
121
}
122
122
123
123
promConfig := prometheusreceiver.Config {
@@ -146,7 +146,23 @@ func NewKueuePrometheusScraper(opts KueuePrometheusScraperOpts) (*KueuePrometheu
146
146
}, nil
147
147
}
148
148
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 {
150
166
relabelConfigs := []* relabel.Config {
151
167
{ // filter by metric name: keep only the Kueue metrics specified via regex in `kueueMetricAllowList`
152
168
Action : relabel .Keep ,
0 commit comments