Skip to content

Commit e38d315

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

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: 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.

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.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: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,10 +774,11 @@ metrics:
774774
# Optional: becomes NEXTCLOUD_INFO_APPS env var in the nextcloud-exporter container.
775775
# Enables gathering of apps-related metrics. Defaults to false
776776
apps: false
777+
update: false
777778

778779
image:
779780
repository: xperimental/nextcloud-exporter
780-
tag: 0.6.2
781+
tag: 0.8.0
781782
pullPolicy: IfNotPresent
782783
# pullSecrets:
783784
# - myRegistrKeySecretName
@@ -859,6 +860,27 @@ metrics:
859860
##
860861
labels: {}
861862

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

863885
rbac:
864886
enabled: false

0 commit comments

Comments
 (0)