Skip to content

Commit e2391c0

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

File tree

4 files changed

+87
-2
lines changed

4 files changed

+87
-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: 7.0.0
3+
version: 7.1.0
44
# renovate: image=docker.io/library/nextcloud
55
appVersion: 31.0.0
66
description: A file sharing server that puts the control and security of your own data back into your hands.

charts/nextcloud/templates/metrics/deployment.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ spec:
7272
value: {{ .Values.metrics.tlsSkipVerify | quote }}
7373
- name: NEXTCLOUD_INFO_APPS
7474
value: {{ .Values.metrics.info.apps | quote }}
75+
- name: NEXTCLOUD_INFO_UPDATE
76+
value: {{ .Values.metrics.info.update | quote }}
7577
ports:
7678
- name: metrics
7779
containerPort: 9205
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{{- if .Values.prometheus.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.prometheus.rules.labels }}
12+
{{- toYaml . | nindent 4 }}
13+
{{- end }}
14+
spec:
15+
groups:
16+
{{- with .Values.prometheus.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.prometheus.rules.additionalRules }}
56+
- name: {{ template "nextcloud.fullname" . }}-Additional
57+
rules:
58+
{{- toYaml .Values.prometheus.rules.additionalRules | nindent 8 }}
59+
{{- end }}
60+
{{- end }}
61+

charts/nextcloud/values.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -859,10 +859,11 @@ metrics:
859859
# Optional: becomes NEXTCLOUD_INFO_APPS env var in the nextcloud-exporter container.
860860
# Enables gathering of apps-related metrics. Defaults to false
861861
apps: false
862+
update: false
862863

863864
image:
864865
repository: xperimental/nextcloud-exporter
865-
tag: 0.6.2
866+
tag: 0.8.0
866867
pullPolicy: IfNotPresent
867868
# pullSecrets:
868869
# - myRegistrKeySecretName
@@ -945,6 +946,27 @@ prometheus:
945946
##
946947
labels: {}
947948

949+
rules:
950+
# -- Deploy Prometheus Rules (Alerts) for the exporter
951+
# @section -- Metrics
952+
enabled: false
953+
# -- Label on Prometheus Rules CRD Manifest
954+
# @section -- Metrics
955+
labels: {}
956+
defaults:
957+
# -- Add Default Rules
958+
# @section -- Metrics
959+
enabled: true
960+
# -- Label on the rules (the severity is already set)
961+
# @section -- Metrics
962+
labels: {}
963+
# -- Filter on metrics on alerts
964+
# @section -- Metrics
965+
filter: ""
966+
# -- Add own Rules to Prometheus Rules
967+
# @section -- Metrics
968+
additionalRules: []
969+
948970

949971
rbac:
950972
enabled: false

0 commit comments

Comments
 (0)