Skip to content

Commit a69d6c9

Browse files
committed
chore(prometheus): support kubernetes services probe
1 parent c4796d6 commit a69d6c9

3 files changed

Lines changed: 174 additions & 18 deletions

File tree

addons/prometheus/2/chart/prometheus/templates/_scrape_config.tpl

Lines changed: 151 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ relabel_configs:
8787
action: keep
8888
{{- end -}}
8989

90-
{{- define "addons.ds_scrape_config" -}}
90+
{{- define "addons.kubernetes-service-endpoints" -}}
9191
honor_labels: true
9292
kubernetes_sd_configs:
9393
- role: endpoints
@@ -121,6 +121,8 @@ relabel_configs:
121121
replacement: __param_$1
122122
- action: labelmap
123123
regex: __meta_kubernetes_service_label_(.+)
124+
- action: labelmap
125+
regex: __meta_kubernetes_pod_label_(.+)
124126
- source_labels: [__meta_kubernetes_namespace]
125127
action: replace
126128
target_label: namespace
@@ -131,3 +133,151 @@ relabel_configs:
131133
action: replace
132134
target_label: node
133135
{{- end -}}
136+
137+
{{- define "addons.kubernetes-service-endpoints-slow" -}}
138+
honor_labels: true
139+
scrape_interval: 5m
140+
scrape_timeout: 30s
141+
kubernetes_sd_configs:
142+
- role: endpoints
143+
namespaces:
144+
own_namespace: true
145+
names:
146+
- {{ include "common.names.namespace" .context }}
147+
relabel_configs:
148+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape_slow]
149+
action: keep
150+
regex: true
151+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
152+
action: replace
153+
target_label: __scheme__
154+
regex: (https?)
155+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
156+
action: replace
157+
target_label: __metrics_path__
158+
regex: (.+)
159+
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
160+
action: replace
161+
target_label: __address__
162+
regex: (.+?)(?::\d+)?;(\d+)
163+
replacement: $1:$2
164+
- action: labelmap
165+
regex: __meta_kubernetes_service_annotation_prometheus_io_param_(.+)
166+
replacement: __param_$1
167+
- action: labelmap
168+
regex: __meta_kubernetes_service_label_(.+)
169+
- source_labels: [__meta_kubernetes_namespace]
170+
action: replace
171+
target_label: namespace
172+
- source_labels: [__meta_kubernetes_service_name]
173+
action: replace
174+
target_label: service
175+
- source_labels: [__meta_kubernetes_pod_node_name]
176+
action: replace
177+
target_label: node
178+
{{- end -}}
179+
180+
{{- define "addons.kubernetes-pods" -}}
181+
honor_labels: true
182+
kubernetes_sd_configs:
183+
- role: pod
184+
namespaces:
185+
own_namespace: true
186+
names:
187+
- {{ include "common.names.namespace" .context }}
188+
189+
relabel_configs:
190+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
191+
action: keep
192+
regex: true
193+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape_slow]
194+
action: drop
195+
regex: true
196+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
197+
action: replace
198+
regex: (https?)
199+
target_label: __scheme__
200+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
201+
action: replace
202+
target_label: __metrics_path__
203+
regex: (.+)
204+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
205+
action: replace
206+
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
207+
replacement: '[$2]:$1'
208+
target_label: __address__
209+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
210+
action: replace
211+
regex: (\d+);((([0-9]+?)(\.|$)){4})
212+
replacement: $2:$1
213+
target_label: __address__
214+
- action: labelmap
215+
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
216+
replacement: __param_$1
217+
- action: labelmap
218+
regex: __meta_kubernetes_pod_label_(.+)
219+
- source_labels: [__meta_kubernetes_namespace]
220+
action: replace
221+
target_label: namespace
222+
- source_labels: [__meta_kubernetes_pod_name]
223+
action: replace
224+
target_label: pod
225+
- source_labels: [__meta_kubernetes_pod_phase]
226+
regex: Pending|Succeeded|Failed|Completed
227+
action: drop
228+
- source_labels: [__meta_kubernetes_pod_node_name]
229+
action: replace
230+
target_label: node
231+
{{- end -}}
232+
233+
{{- define "addons.kubernetes-pods-slow" -}}
234+
honor_labels: true
235+
scrape_interval: 5m
236+
scrape_timeout: 30s
237+
kubernetes_sd_configs:
238+
- role: pod
239+
namespaces:
240+
own_namespace: true
241+
names:
242+
- {{ include "common.names.namespace" .context }}
243+
244+
relabel_configs:
245+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape_slow]
246+
action: keep
247+
regex: true
248+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
249+
action: replace
250+
regex: (https?)
251+
target_label: __scheme__
252+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
253+
action: replace
254+
target_label: __metrics_path__
255+
regex: (.+)
256+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
257+
action: replace
258+
regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4})
259+
replacement: '[$2]:$1'
260+
target_label: __address__
261+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_port, __meta_kubernetes_pod_ip]
262+
action: replace
263+
regex: (\d+);((([0-9]+?)(\.|$)){4})
264+
replacement: $2:$1
265+
target_label: __address__
266+
- action: labelmap
267+
regex: __meta_kubernetes_pod_annotation_prometheus_io_param_(.+)
268+
replacement: __param_$1
269+
- action: labelmap
270+
regex: __meta_kubernetes_pod_label_(.+)
271+
- source_labels: [__meta_kubernetes_namespace]
272+
action: replace
273+
target_label: namespace
274+
- source_labels: [__meta_kubernetes_pod_name]
275+
action: replace
276+
target_label: pod
277+
- source_labels: [__meta_kubernetes_pod_phase]
278+
regex: Pending|Succeeded|Failed|Completed
279+
action: drop
280+
- source_labels: [__meta_kubernetes_pod_node_name]
281+
action: replace
282+
target_label: node
283+
{{- end -}}

addons/prometheus/2/chart/prometheus/values.yaml

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -565,11 +565,11 @@ alertmanager:
565565
##
566566
selector: {}
567567

568-
containerScrape:
568+
drycc:
569569
token: xxxxx
570-
url: xxxx
571-
scheme: https
572-
namespaces: []
570+
endpoint: drycc-controller-api.drycc.svc.cluster.local
571+
scheme: http
572+
apps: []
573573

574574
## @section Prometheus server Parameters
575575
##
@@ -583,8 +583,8 @@ containerScrape:
583583
## @param server.image.pullSecrets Prometheus image pull secrets
584584
##
585585
server:
586-
username: xxxx
587-
password: xxxx
586+
username: admin
587+
password: admin
588588
image:
589589
registry: registry.drycc.cc
590590
repository: drycc-addons/prometheus
@@ -641,24 +641,30 @@ server:
641641
{{- include "prometheus.scrape_config" (dict "component" "alertmanager" "context" $) | nindent 4 }}
642642
{{- end }}
643643
{{- if .Values.scrapeAddons.enabled }}
644-
- job_name: addons
645-
{{- include "addons.ds_scrape_config" (dict "context" $) | nindent 4 }}
644+
- job_name: kubernetes-service-endpoints
645+
{{- include "addons.kubernetes-service-endpoints" (dict "context" $) | nindent 4 }}
646+
- job_name: kubernetes-service-endpoints-slow
647+
{{- include "addons.kubernetes-service-endpoints-slow" (dict "context" $) | nindent 4 }}
648+
- job_name: kubernetes-pods
649+
{{- include "addons.kubernetes-pods" (dict "context" $) | nindent 4 }}
650+
- job_name: kubernetes-pods-slow
651+
{{- include "addons.kubernetes-pods-slow" (dict "context" $) | nindent 4 }}
646652
{{- end }}
647653
648-
{{ $scheme := .Values.containerScrape.scheme }}
649-
{{ $token := .Values.containerScrape.token }}
650-
{{ $url := .Values.containerScrape.url }}
651-
{{- range $namespace := .Values.containerScrape.namespaces }}
654+
{{ $scheme := .Values.drycc.scheme }}
655+
{{ $token := .Values.drycc.token }}
656+
{{ $endpoint := .Values.drycc.endpoint }}
657+
{{- range $app := .Values.drycc.apps }}
652658
653-
{{- if $namespace }}
654-
- job_name: 'jobns-%s {{ $namespace }}'
659+
{{- if $app }}
660+
- job_name: 'drycc-apps-{{ $app }}'
655661
scheme: {{ $scheme }}
656-
metrics_path: /v2/apps/{{ $namespace }}/metrics
662+
metrics_path: /v2/apps/{{ $app }}/metrics
657663
authorization:
658664
type: Token
659665
credentials: {{ $token }}
660666
static_configs:
661-
- targets: [ {{ $url }} ]
667+
- targets: [ {{ $endpoint }} ]
662668
{{- end }}
663669
{{- end }}
664670

addons/prometheus/2/meta.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ allow_parameters:
3030
- name: "server.password"
3131
required: false
3232
description: "prometheus administor password"
33-
- name: "containerScrape"
33+
- name: "drycc"
3434
required: false
3535
description: "container scrape"
3636
- name: "extraScrapeConfigs"

0 commit comments

Comments
 (0)