Skip to content

Commit 2d04f15

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

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.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: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{{- if .Values.metrics.rules.enabled }}
2+
{{- $fullname := include "nextcloud.fullname" . }}
3+
apiVersion: monitoring.coreos.com/v1
4+
kind: PrometheusRule
5+
metadata:
6+
name: {{ $fullname }}
7+
labels:
8+
{{- include "nextcloud.labels" ( dict "rootContext" $ ) | nindent 4 }}
9+
{{- with .Values.metrics.rules.labels }}
10+
{{- toYaml . | nindent 4 }}
11+
{{- end }}
12+
spec:
13+
groups:
14+
{{- with .Values.metrics.rules.defaults }}
15+
{{- if .enabled }}
16+
{{- $filter := .filter | default (printf `namespace="%s",job="%s"` $.Release.Namespace $fullname) }}
17+
- name: {{ $fullname }}-Defaults
18+
rules:
19+
- alert: "nextcloud: not reachable"
20+
expr: 'avg(nextcloud_up{ {{ $filter }} }) without(endpoint,container,pod,instance) < 1'
21+
for: 5m
22+
labels:
23+
severity: "critical"
24+
{{- with .labels }}
25+
{{- toYaml . | nindent 12 }}
26+
{{- end }}
27+
annotations:
28+
{{`
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+
annotations:
39+
{{`
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+
annotations:
50+
{{`
51+
summary: "Nextcloud in {{ $labels.namespace }} has {{ $value }} outdated Apps"
52+
`}}
53+
{{- end }}
54+
{{- end }}{{/* end-with prometheus.rules.default */}}
55+
{{- with .Values.metrics.rules.additionalRules }}
56+
- name: {{ $fullname }}-Additional
57+
rules:
58+
{{- toYaml . | 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
@@ -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 (default just for this helm-chart)
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)