Skip to content

Commit c924e0d

Browse files
committed
feat(helm): ServiceMonitor + PodMonitor for Prometheus Operator (default enabled)
1 parent 47bad84 commit c924e0d

5 files changed

Lines changed: 89 additions & 0 deletions

File tree

charts/imp/templates/agent/daemonset.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ spec:
4343
fieldPath: spec.nodeName
4444
- name: FC_KERNEL
4545
value: {{ .Values.agent.env.kernelPath | required "agent.env.kernelPath is required" | quote }}
46+
ports:
47+
- name: metrics
48+
containerPort: 9090
49+
protocol: TCP
4650
resources:
4751
{{- toYaml .Values.agent.resources | nindent 10 }}
4852
securityContext:
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{- if .Values.metrics.serviceMonitor.enabled }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: PodMonitor
4+
metadata:
5+
name: {{ include "imp.fullname" . }}-agent
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "imp.labels" . | nindent 4 }}
9+
app.kubernetes.io/component: agent
10+
spec:
11+
selector:
12+
matchLabels:
13+
{{- include "imp.selectorLabels" . | nindent 6 }}
14+
app.kubernetes.io/component: agent
15+
podMetricsEndpoints:
16+
- port: metrics
17+
interval: {{ .Values.metrics.serviceMonitor.interval }}
18+
namespaceSelector:
19+
matchNames:
20+
- {{ .Release.Namespace }}
21+
{{- end }}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{- if .Values.metrics.serviceMonitor.enabled }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: ServiceMonitor
4+
metadata:
5+
name: {{ include "imp.fullname" . }}-operator
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
{{- include "imp.labels" . | nindent 4 }}
9+
app.kubernetes.io/component: operator
10+
spec:
11+
selector:
12+
matchLabels:
13+
{{- include "imp.selectorLabels" . | nindent 6 }}
14+
app.kubernetes.io/component: operator
15+
endpoints:
16+
- port: metrics
17+
interval: {{ .Values.metrics.serviceMonitor.interval }}
18+
namespaceSelector:
19+
matchNames:
20+
- {{ .Release.Namespace }}
21+
{{- end }}

charts/imp/tests/metrics_test.yaml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
suite: metrics resources
2+
templates:
3+
- templates/operator/servicemonitor.yaml
4+
- templates/agent/podmonitor.yaml
5+
tests:
6+
- it: creates ServiceMonitor by default
7+
template: templates/operator/servicemonitor.yaml
8+
asserts:
9+
- isKind:
10+
of: ServiceMonitor
11+
- equal:
12+
path: spec.endpoints[0].port
13+
value: metrics
14+
15+
- it: skips ServiceMonitor when disabled
16+
template: templates/operator/servicemonitor.yaml
17+
set:
18+
metrics.serviceMonitor.enabled: false
19+
asserts:
20+
- hasDocuments:
21+
count: 0
22+
23+
- it: creates PodMonitor by default
24+
template: templates/agent/podmonitor.yaml
25+
asserts:
26+
- isKind:
27+
of: PodMonitor
28+
- equal:
29+
path: spec.podMetricsEndpoints[0].port
30+
value: metrics
31+
32+
- it: skips PodMonitor when disabled
33+
template: templates/agent/podmonitor.yaml
34+
set:
35+
metrics.serviceMonitor.enabled: false
36+
asserts:
37+
- hasDocuments:
38+
count: 0

charts/imp/values.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,8 @@ webhook:
5151
issuerRef: {}
5252
duration: 8760h
5353
renewBefore: 720h
54+
55+
metrics:
56+
serviceMonitor:
57+
enabled: true
58+
interval: 30s

0 commit comments

Comments
 (0)