Merge pull request 'feat(alerting): groupe homelab — être prévenu sur Telegram quand (ou juste avant que) le lab tombe' (#13) from arcodange/homelab-alerts into main
Reviewed-on: #13
This commit was merged in pull request #13.
This commit is contained in:
@@ -1185,6 +1185,57 @@ prometheus: &prometheus_config
|
||||
annotations:
|
||||
summary: "Prospection — brief produit mais non poussé sur Telegram"
|
||||
description: "La vidéo du brief a été rendue mais l'envoi Telegram a échoué (token/chat_id/API). Voir les logs du CronJob prospection."
|
||||
# Santé du socle : être prévenu quand (ou juste avant que) le homelab tombe.
|
||||
# Incident 2026-07-23 : build CI sans limites sur pi1 → RAM épuisée (0 swap),
|
||||
# load15 >100, traefik + apiserver k3s affamés → tout *.arcodange.lab injoignable
|
||||
# (Gitea compris, pourtant sain sur pi2). Prometheus vit sur pi3 et Alertmanager
|
||||
# sur pi2 : cette chaîne d'alerte survit donc à la perte de pi1.
|
||||
- name: homelab
|
||||
rules:
|
||||
- alert: NoeudInjoignable
|
||||
# node-exporter ne répond plus : nœud éteint, réseau HS, ou surcharge telle
|
||||
# que plus rien n'y répond (le cas de l'incident).
|
||||
expr: up{job="kubernetes-service-endpoints", app_kubernetes_io_name="prometheus-node-exporter"} == 0
|
||||
for: 3m
|
||||
labels:
|
||||
severity: critical
|
||||
app: homelab
|
||||
annotations:
|
||||
summary: "Homelab — {{ $labels.node }} est injoignable"
|
||||
description: "node-exporter de {{ $labels.node }} ({{ $labels.instance }}) ne répond plus depuis 3 min : nœud down ou en surcharge sévère."
|
||||
- alert: IngressLabIndisponible
|
||||
# Plus aucun replica traefik dispo — ou kube-state-metrics muet (il vit sur
|
||||
# pi1 : quand pi1 tombe, la métrique disparaît au lieu de passer à 0).
|
||||
expr: >-
|
||||
kube_deployment_status_replicas_available{namespace="kube-system",deployment="traefik"} < 1
|
||||
or absent(kube_deployment_status_replicas_available{namespace="kube-system",deployment="traefik"})
|
||||
for: 3m
|
||||
labels:
|
||||
severity: critical
|
||||
app: homelab
|
||||
annotations:
|
||||
summary: "Homelab — ingress traefik indisponible : *.arcodange.lab est HS"
|
||||
description: "Aucun replica traefik disponible (ou métrique absente = kube-state-metrics muet). Gitea, ArgoCD, Grafana, Vault… sont injoignables via leurs URLs .lab. Gitea reste accessible en direct : http://192.168.1.202:3000."
|
||||
- alert: NoeudPressionMemoire
|
||||
# Précurseur direct de l'incident : <500 Mo dispo sur un Pi 8 Go — sans
|
||||
# swap, le kernel part en thrash bien avant d'atteindre 0.
|
||||
expr: node_memory_MemAvailable_bytes < 500 * 1024 * 1024
|
||||
for: 5m
|
||||
labels:
|
||||
severity: warning
|
||||
app: homelab
|
||||
annotations:
|
||||
summary: "Homelab — mémoire critique sur {{ $labels.node }}"
|
||||
description: "{{ $labels.node }} n'a plus que {{ $value | humanize1024 }}B de mémoire disponible depuis 5 min : risque imminent de thrash (pas de swap sur les Pis). Suspect n°1 : un job CI trop gourmand."
|
||||
- alert: NoeudEnSurcharge
|
||||
expr: node_load15 > 8
|
||||
for: 10m
|
||||
labels:
|
||||
severity: warning
|
||||
app: homelab
|
||||
annotations:
|
||||
summary: "Homelab — {{ $labels.node }} en surcharge (load15 = {{ $value | humanize }})"
|
||||
description: "load15 > 8 depuis 10 min sur {{ $labels.node }} (4 cœurs) : quelque chose sature la machine, l'ingress et l'API k3s sont en danger si c'est pi1."
|
||||
# groups:
|
||||
# - name: Instances
|
||||
# rules:
|
||||
|
||||
Reference in New Issue
Block a user