File tree Expand file tree Collapse file tree 6 files changed +110
-0
lines changed
Expand file tree Collapse file tree 6 files changed +110
-0
lines changed Original file line number Diff line number Diff line change @@ -145,6 +145,49 @@ data:
145145 target_label : __metrics_path__
146146 replacement : /api/v1/nodes/${1}/proxy/metrics/cadvisor
147147{{- end }}
148+ {{- if .Values.prometheus.kubelet }}
149+ - job_name : kubelet
150+ honor_labels : true
151+ kubernetes_sd_configs :
152+ - role : node
153+ scrape_interval : 60s
154+ scrape_timeout : 20s
155+ metrics_path : /metrics
156+ {{- if contains .Values.prometheus.kubelet.scheme "http" }}
157+ scheme : http
158+ {{- else if contains .Values.prometheus.kubelet.scheme "https" }}
159+ scheme : https
160+ authorization :
161+ type : Bearer
162+ credentials_file : /var/run/secrets/kubernetes.io/serviceaccount/token
163+ tls_config :
164+ ca_file : /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
165+ insecure_skip_verify : true
166+ {{- end }}
167+ relabel_configs :
168+ - source_labels :
169+ - __meta_kubernetes_node_name
170+ target_label : node
171+ - regex : __meta_kubernetes_node_label_(.+)
172+ action : labelmap
173+ - source_labels :
174+ - __address__
175+ separator : ;
176+ target_label : __address__
177+ regex : ([^:]+)(?::\d+)?
178+ {{- if contains .Values.prometheus.kubelet.scheme "http" }}
179+ replacement : $1:10255
180+ {{- else if contains .Values.prometheus.kubelet.scheme "https" }}
181+ replacement : $1:10250
182+ {{- end }}
183+ action : replace
184+ - action : labeldrop
185+ regex : " (eks|beta_kubernetes_io|cloud_google|iam_gke_io|gke|kubernetes_io|node_kubernetes_io|failure_domain|projectcalico)_.*"
186+ metric_relabel_configs :
187+ - source_labels : [__name__]
188+ regex : " storage_operation_duration_seconds_bucket|kubelet_runtime_operations_duration_seconds_bucket|kubelet_http_requests_duration_seconds_bucket"
189+ action : drop
190+ {{- end }}
148191{{- if .Values.prometheus.extraScrapeConfigs -}}
149192{{- with .Values.prometheus.extraScrapeConfigs }}
150193{{ toYaml . | indent 4 }}
Original file line number Diff line number Diff line change @@ -15,6 +15,11 @@ rules:
1515 resources :
1616 - nodes
1717 - nodes/proxy
18+ {{- if .Values.prometheus.kubelet }}
19+ - nodes/metrics
20+ - nodes/stats
21+ - nodes/spec
22+ {{- end }}
1823 - services
1924 - endpoints
2025 - pods
Original file line number Diff line number Diff line change @@ -2026,6 +2026,13 @@ prometheus:
20262026 customRelabelConfigs : []
20272027 extraScrapeConfigs : []
20282028 extraCustomArgs : {}
2029+ # Enable kubelet scraping
2030+ # When enabled, Prometheus will scrape kubelet metrics directly from nodes
2031+ kubelet :
2032+ # scheme: "https" or "http"
2033+ # Use "https" for secure kubelet endpoints (default in most clusters)
2034+ # Use "http" for insecure kubelet endpoints (requires kubelet to be configured with --read-only-port)
2035+ scheme : " https"
20292036
20302037 # # Prometheus service
20312038 # # templates/prometheus-service.yaml
Original file line number Diff line number Diff line change @@ -145,6 +145,49 @@ data:
145145 target_label : __metrics_path__
146146 replacement : /api/v1/nodes/${1}/proxy/metrics/cadvisor
147147{{- end }}
148+ {{- if .Values.prometheus.kubelet }}
149+ - job_name : kubelet
150+ honor_labels : true
151+ kubernetes_sd_configs :
152+ - role : node
153+ scrape_interval : 60s
154+ scrape_timeout : 20s
155+ metrics_path : /metrics
156+ {{- if contains .Values.prometheus.kubelet.scheme "http" }}
157+ scheme : http
158+ {{- else if contains .Values.prometheus.kubelet.scheme "https" }}
159+ scheme : https
160+ authorization :
161+ type : Bearer
162+ credentials_file : /var/run/secrets/kubernetes.io/serviceaccount/token
163+ tls_config :
164+ ca_file : /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
165+ insecure_skip_verify : true
166+ {{- end }}
167+ relabel_configs :
168+ - source_labels :
169+ - __meta_kubernetes_node_name
170+ target_label : node
171+ - regex : __meta_kubernetes_node_label_(.+)
172+ action : labelmap
173+ - source_labels :
174+ - __address__
175+ separator : ;
176+ target_label : __address__
177+ regex : ([^:]+)(?::\d+)?
178+ {{- if contains .Values.prometheus.kubelet.scheme "http" }}
179+ replacement : $1:10255
180+ {{- else if contains .Values.prometheus.kubelet.scheme "https" }}
181+ replacement : $1:10250
182+ {{- end }}
183+ action : replace
184+ - action : labeldrop
185+ regex : " (eks|beta_kubernetes_io|cloud_google|iam_gke_io|gke|kubernetes_io|node_kubernetes_io|failure_domain|projectcalico)_.*"
186+ metric_relabel_configs :
187+ - source_labels : [__name__]
188+ regex : " storage_operation_duration_seconds_bucket|kubelet_runtime_operations_duration_seconds_bucket|kubelet_http_requests_duration_seconds_bucket"
189+ action : drop
190+ {{- end }}
148191{{- if .Values.prometheus.extraScrapeConfigs -}}
149192{{- with .Values.prometheus.extraScrapeConfigs }}
150193{{ toYaml . | indent 4 }}
Original file line number Diff line number Diff line change @@ -15,6 +15,11 @@ rules:
1515 resources :
1616 - nodes
1717 - nodes/proxy
18+ {{- if .Values.prometheus.kubelet }}
19+ - nodes/metrics
20+ - nodes/stats
21+ - nodes/spec
22+ {{- end }}
1823 - services
1924 - endpoints
2025 - pods
Original file line number Diff line number Diff line change @@ -2107,6 +2107,13 @@ prometheus:
21072107 customRelabelConfigs : []
21082108 extraScrapeConfigs : []
21092109 extraCustomArgs : {}
2110+ # Enable kubelet scraping
2111+ # When enabled, Prometheus will scrape kubelet metrics directly from nodes
2112+ kubelet :
2113+ # scheme: "https" or "http"
2114+ # Use "https" for secure kubelet endpoints (default in most clusters)
2115+ # Use "http" for insecure kubelet endpoints (requires kubelet to be configured with --read-only-port)
2116+ scheme : " https"
21102117
21112118 # # Prometheus service
21122119 # # templates/prometheus-service.yaml
You can’t perform that action at this time.
0 commit comments