helm-charts/headscale/templates/prometheus-rules.yaml

32 lines
1.2 KiB
YAML

{{- if .Values.prometheus.rules.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "headscale.fullname" . }}
labels:
{{- include "headscale.labels" . | nindent 4 }}
{{- with .Values.prometheus.rules.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
groups:
{{- if .Values.prometheus.rules.defaults.enabled }}
- name: {{ template "headscale.fullname" . }}-Defaults
rules:
{{- range $key, $value := .Values.prometheus.rules.defaults.lastUpdates }}
- alert: "Headscale: offline machines"
expr: 'time() - sum(headscale_last_update_seconds{ {{ $.Values.prometheus.rules.defaults.filter }} }) without(endpoint,container,pod,instance,service,namespace,job) > {{ $value }}'
for: "1m"
labels:
severity: "{{ $key }}"
{{`
annotations:
summary: "{{ $labels.machine }} of {{ $labels.user }} is offline for {{ humanizeDuration $value }}"
`}}
{{- end }}
{{- end }}
{{- if .Values.prometheus.rules.additionalRules }}
- name: {{ template "headscale.fullname" . }}-Additional
rules: {{- toYaml .Values.prometheus.rules.additionalRules | nindent 4 }}
{{- end }}
{{- end }}