Skip to content

Commit ef81948

Browse files
committed
Support use kubelet scrape container metrics
1 parent 141f507 commit ef81948

File tree

6 files changed

+110
-0
lines changed

6 files changed

+110
-0
lines changed

charts/sn-platform-slim/templates/prometheus/prometheus-configmap.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff 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 }}

charts/sn-platform-slim/templates/prometheus/pulsar-operators-rbac.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff 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

charts/sn-platform-slim/values.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff 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

charts/sn-platform/templates/prometheus/prometheus-configmap.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff 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 }}

charts/sn-platform/templates/prometheus/pulsar-operators-rbac.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff 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

charts/sn-platform/values.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff 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

0 commit comments

Comments
 (0)