Skip to content

Commit fb52f55

Browse files
committed
feat(metrics): add prometheus rules (and update exporter)
Signed-off-by: WrenIX <[email protected]>
1 parent 7785d69 commit fb52f55

File tree

3 files changed

+84
-2
lines changed

3 files changed

+84
-2
lines changed

charts/nextcloud/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: nextcloud
3-
version: 6.6.3
3+
version: 6.7.0
44
# renovate: image=docker.io/library/nextcloud
55
appVersion: 30.0.5
66
description: A file sharing server that puts the control and security of your own data back into your hands.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{{- if .Values.metrics.rules.enabled }}
2+
apiVersion: monitoring.coreos.com/v1
3+
kind: PrometheusRule
4+
metadata:
5+
name: {{ include "nextcloud.fullname" . }}
6+
labels:
7+
app.kubernetes.io/name: {{ include "nextcloud.name" . }}
8+
helm.sh/chart: {{ include "nextcloud.chart" . }}
9+
app.kubernetes.io/instance: {{ .Release.Name }}
10+
app.kubernetes.io/managed-by: {{ .Release.Service }}
11+
{{- with .Values.metrics.rules.labels }}
12+
{{- toYaml . | nindent 4 }}
13+
{{- end }}
14+
spec:
15+
groups:
16+
{{- with .Values.metrics.rules.defaults }}
17+
{{- if .enabled }}
18+
- name: {{ template "nextcloud.fullname" $ }}-Defaults
19+
rules:
20+
- alert: "nextcloud: not reachable"
21+
expr: 'avg(nextcloud_last_update_seconds{ {{ .filter }} }) without(endpoint,container,pod,instance) < 1'
22+
labels:
23+
severity: "critical"
24+
{{- with .labels }}
25+
{{- toYaml . | nindent 12 }}
26+
{{- end }}
27+
{{`
28+
annotations:
29+
summary: "Nextcloud in {{ $labels.namespace }} is not reachable by exporter"
30+
`}}
31+
- alert: "nextcloud: outdated version"
32+
expr: 'sum(nextcloud_system_update_available{ {{ .filter }} }) without(endpoint,container,pod,instance) > 0'
33+
labels:
34+
severity: "warning"
35+
{{- with .labels }}
36+
{{- toYaml . | nindent 12 }}
37+
{{- end }}
38+
{{`
39+
annotations:
40+
summary: "Nextcloud in {{ $labels.namespace }} is outdated"
41+
`}}
42+
- alert: "nextcloud: outdated apps"
43+
expr: 'sum(nextcloud_apps_updates_available_total{ {{ .filter }} }) without(endpoint,container,pod,instance) > 0'
44+
labels:
45+
severity: "warning"
46+
{{- with .labels }}
47+
{{- toYaml . | nindent 12 }}
48+
{{- end }}
49+
{{`
50+
annotations:
51+
summary: "Nextcloud in {{ $labels.namespace }} has {{ $value }} outdated Apps"
52+
`}}
53+
{{- end }}
54+
{{- end }}{{/* end-with metrics.rules.default */}}
55+
{{- if .Values.metrics.rules.additionalRules }}
56+
- name: {{ template "nextcloud.fullname" . }}-Additional
57+
rules:
58+
{{- toYaml .Values.metrics.rules.additionalRules | nindent 8 }}
59+
{{- end }}
60+
{{- end }}
61+

charts/nextcloud/values.yaml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -777,7 +777,7 @@ metrics:
777777

778778
image:
779779
repository: xperimental/nextcloud-exporter
780-
tag: 0.6.2
780+
tag: 0.8.0
781781
pullPolicy: IfNotPresent
782782
# pullSecrets:
783783
# - myRegistrKeySecretName
@@ -859,6 +859,27 @@ metrics:
859859
##
860860
labels: {}
861861

862+
rules:
863+
# -- Deploy Prometheus Rules (Alerts) for the exporter
864+
# @section -- Metrics
865+
enabled: false
866+
# -- Label on Prometheus Rules CRD Manifest
867+
# @section -- Metrics
868+
labels: {}
869+
defaults:
870+
# -- Add Default Rules
871+
# @section -- Metrics
872+
enabled: true
873+
# -- Label on the rules (the severity is already set)
874+
# @section -- Metrics
875+
labels: {}
876+
# -- Filter on metrics on alerts
877+
# @section -- Metrics
878+
filter: ""
879+
# -- Add own Rules to Prometheus Rules
880+
# @section -- Metrics
881+
additionalRules: []
882+
862883

863884
rbac:
864885
enabled: false

0 commit comments

Comments
 (0)