Skip to content

Commit 561609e

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

File tree

4 files changed

+85
-2
lines changed

4 files changed

+85
-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.10
3+
version: 6.7.0
44
# renovate: image=docker.io/library/nextcloud
55
appVersion: 30.0.10
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
@@ -64,6 +64,8 @@ spec:
6464
value: {{ .Values.metrics.tlsSkipVerify | quote }}
6565
- name: NEXTCLOUD_INFO_APPS
6666
value: {{ .Values.metrics.info.apps | quote }}
67+
- name: NEXTCLOUD_INFO_UPDATE
68+
value: {{ .Values.metrics.info.update | quote }}
6769
ports:
6870
- name: metrics
6971
containerPort: 9205
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
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+
{{- include "nextcloud.labels" ( dict "rootContext" $ ) | nindent 4 }}
8+
{{- with .Values.metrics.rules.labels }}
9+
{{- toYaml . | nindent 4 }}
10+
{{- end }}
11+
spec:
12+
groups:
13+
{{- with .Values.metrics.rules.defaults }}
14+
{{- if .enabled }}
15+
- name: {{ template "nextcloud.fullname" $ }}-Defaults
16+
rules:
17+
- alert: "nextcloud: not reachable"
18+
expr: 'avg(nextcloud_last_update_seconds{ {{ .filter }} }) without(endpoint,container,pod,instance) < 1'
19+
for: 5m
20+
labels:
21+
severity: "critical"
22+
{{- with .labels }}
23+
{{- toYaml . | nindent 12 }}
24+
{{- end }}
25+
annotations:
26+
{{`
27+
summary: "Nextcloud in {{ $labels.namespace }} is not reachable by exporter"
28+
`}}
29+
- alert: "nextcloud: outdated version"
30+
expr: 'sum(nextcloud_system_update_available{ {{ .filter }} }) without(endpoint,container,pod,instance) > 0'
31+
labels:
32+
severity: "warning"
33+
{{- with .labels }}
34+
{{- toYaml . | nindent 12 }}
35+
{{- end }}
36+
annotations:
37+
{{`
38+
summary: "Nextcloud in {{ $labels.namespace }} is outdated"
39+
`}}
40+
- alert: "nextcloud: outdated apps"
41+
expr: 'sum(nextcloud_apps_updates_available_total{ {{ .filter }} }) without(endpoint,container,pod,instance) > 0'
42+
labels:
43+
severity: "warning"
44+
{{- with .labels }}
45+
{{- toYaml . | nindent 12 }}
46+
{{- end }}
47+
annotations:
48+
{{`
49+
summary: "Nextcloud in {{ $labels.namespace }} has {{ $value }} outdated Apps"
50+
`}}
51+
{{- end }}
52+
{{- end }}{{/* end-with metrics.rules.default */}}
53+
{{- if .Values.metrics.rules.additionalRules }}
54+
- name: {{ template "nextcloud.fullname" . }}-Additional
55+
rules:
56+
{{- toYaml .Values.metrics.rules.additionalRules | nindent 8 }}
57+
{{- end }}
58+
{{- end }}
59+

charts/nextcloud/values.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -778,10 +778,11 @@ metrics:
778778
# Optional: becomes NEXTCLOUD_INFO_APPS env var in the nextcloud-exporter container.
779779
# Enables gathering of apps-related metrics. Defaults to false
780780
apps: false
781+
update: false
781782

782783
image:
783784
repository: xperimental/nextcloud-exporter
784-
tag: 0.6.2
785+
tag: 0.8.0
785786
pullPolicy: IfNotPresent
786787
# pullSecrets:
787788
# - myRegistrKeySecretName
@@ -863,6 +864,27 @@ metrics:
863864
##
864865
labels: {}
865866

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

867889
rbac:
868890
enabled: false

0 commit comments

Comments
 (0)