Skip to content

Commit a2aefd8

Browse files
authored
chart(selenium-grid): add ServiceMonitor and PodMonitor support for Prometheus Operator (#3121)
1 parent 9624388 commit a2aefd8

5 files changed

Lines changed: 109 additions & 2 deletions

File tree

charts/selenium-grid/templates/monitoring-exporter-deployment.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ spec:
3131
{{- $imageRegistry := default .Values.global.seleniumGrid.imageRegistry .Values.monitoring.exporter.imageRegistry }}
3232
image: {{ printf "%s/%s:%s" $imageRegistry .Values.monitoring.exporter.imageName .Values.monitoring.exporter.imageTag | quote }}
3333
ports:
34-
- containerPort: {{ .Values.monitoring.exporter.port }}
34+
- name: metrics
35+
containerPort: {{ .Values.monitoring.exporter.port }}
3536
{{- with .Values.monitoring.exporter.tolerations }}
3637
tolerations: {{ toYaml . | nindent 6 }}
3738
{{- end }}

charts/selenium-grid/templates/monitoring-exporter-service.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ spec:
2626
- name: http-port
2727
protocol: TCP
2828
port: {{ .Values.monitoring.exporter.port }}
29-
targetPort: {{ .Values.monitoring.exporter.port }}
29+
targetPort: metrics
3030
{{- if and (eq .Values.monitoring.exporter.service.type "NodePort") .Values.monitoring.exporter.service.nodePort }}
3131
nodePort: {{ .Values.monitoring.exporter.service.nodePort }}
3232
{{- end }}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{{- if and (eq (include "seleniumGrid.monitoring.enabled" $) "true") .Values.monitoring.podMonitor.enabled }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: PodMonitor
4+
metadata:
5+
name: {{ template "seleniumGrid.monitoring.exporter.fullname" $ }}
6+
namespace: {{ .Values.monitoring.podMonitor.namespace | default .Release.Namespace }}
7+
{{- with .Values.monitoring.podMonitor.annotations }}
8+
annotations:
9+
{{- toYaml . | nindent 4 }}
10+
{{- end }}
11+
labels:
12+
{{- include "seleniumGrid.commonLabels" $ | nindent 4 }}
13+
{{- with .Values.monitoring.podMonitor.labels }}
14+
{{- toYaml . | nindent 4 }}
15+
{{- end }}
16+
spec:
17+
selector:
18+
matchLabels:
19+
app.kubernetes.io/name: {{ template "seleniumGrid.monitoring.exporter.fullname" $ }}
20+
podMetricsEndpoints:
21+
- port: metrics
22+
path: {{ .Values.monitoring.podMonitor.path }}
23+
interval: {{ .Values.monitoring.podMonitor.interval }}
24+
scrapeTimeout: {{ .Values.monitoring.podMonitor.scrapeTimeout }}
25+
{{- with .Values.monitoring.podMonitor.relabelings }}
26+
relabelings:
27+
{{- toYaml . | nindent 8 }}
28+
{{- end }}
29+
{{- with .Values.monitoring.podMonitor.metricRelabelings }}
30+
metricRelabelings:
31+
{{- toYaml . | nindent 8 }}
32+
{{- end }}
33+
{{- end }}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{{- if and (eq (include "seleniumGrid.monitoring.enabled" $) "true") .Values.monitoring.serviceMonitor.enabled }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: ServiceMonitor
4+
metadata:
5+
name: {{ template "seleniumGrid.monitoring.exporter.fullname" $ }}
6+
namespace: {{ .Values.monitoring.serviceMonitor.namespace | default .Release.Namespace }}
7+
{{- with .Values.monitoring.serviceMonitor.annotations }}
8+
annotations:
9+
{{- toYaml . | nindent 4 }}
10+
{{- end }}
11+
labels:
12+
{{- include "seleniumGrid.commonLabels" $ | nindent 4 }}
13+
{{- with .Values.monitoring.serviceMonitor.labels }}
14+
{{- toYaml . | nindent 4 }}
15+
{{- end }}
16+
spec:
17+
selector:
18+
matchLabels:
19+
app.kubernetes.io/name: {{ template "seleniumGrid.monitoring.exporter.fullname" $ }}
20+
endpoints:
21+
- port: http-port
22+
path: {{ .Values.monitoring.serviceMonitor.path }}
23+
interval: {{ .Values.monitoring.serviceMonitor.interval }}
24+
scrapeTimeout: {{ .Values.monitoring.serviceMonitor.scrapeTimeout }}
25+
{{- with .Values.monitoring.serviceMonitor.relabelings }}
26+
relabelings:
27+
{{- toYaml . | nindent 8 }}
28+
{{- end }}
29+
{{- with .Values.monitoring.serviceMonitor.metricRelabelings }}
30+
metricRelabelings:
31+
{{- toYaml . | nindent 8 }}
32+
{{- end }}
33+
{{- end }}

charts/selenium-grid/values.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1041,6 +1041,46 @@ monitoring:
10411041
key: ""
10421042
value: ""
10431043
annotations: {}
1044+
# -- ServiceMonitor configuration for Prometheus Operator
1045+
serviceMonitor:
1046+
# -- Enable ServiceMonitor resource
1047+
enabled: false
1048+
# -- Namespace to deploy the ServiceMonitor into (defaults to release namespace)
1049+
namespace: ""
1050+
# -- Additional labels for the ServiceMonitor
1051+
labels: {}
1052+
# -- Additional annotations for the ServiceMonitor
1053+
annotations: {}
1054+
# -- Metrics scrape path
1055+
path: /metrics
1056+
# -- Scrape interval
1057+
interval: 30s
1058+
# -- Scrape timeout
1059+
scrapeTimeout: 10s
1060+
# -- RelabelConfigs to apply to samples before scraping
1061+
relabelings: []
1062+
# -- MetricRelabelConfigs to apply to samples before ingestion
1063+
metricRelabelings: []
1064+
# -- PodMonitor configuration for Prometheus Operator (alternative to ServiceMonitor)
1065+
podMonitor:
1066+
# -- Enable PodMonitor resource
1067+
enabled: false
1068+
# -- Namespace to deploy the PodMonitor into (defaults to release namespace)
1069+
namespace: ""
1070+
# -- Additional labels for the PodMonitor
1071+
labels: {}
1072+
# -- Additional annotations for the PodMonitor
1073+
annotations: {}
1074+
# -- Metrics scrape path
1075+
path: /metrics
1076+
# -- Scrape interval
1077+
interval: 30s
1078+
# -- Scrape timeout
1079+
scrapeTimeout: 10s
1080+
# -- RelabelConfigs to apply to samples before scraping
1081+
relabelings: []
1082+
# -- MetricRelabelConfigs to apply to samples before ingestion
1083+
metricRelabelings: []
10441084

10451085
# Keda scaled object configuration
10461086
autoscaling:

0 commit comments

Comments
 (0)