Membre depuis le 30/03/2019
salut. c'est un classique. le plus simple c'est d'utiliser le
group_bydans ta config alertmanager. tu peux grouper par
alertnameet
clusterpar exemple si t'as un label
clustersur tes métriques. ça envoie une seule notif pour toutes les alertes du même type dans le même cluster
Membre depuis le 06/07/2019
et aussi les
inhibit_rules! si tu as une alerte générale genre
cluster_downtu peux inhiber toutes les alertes individuelles
high_cpu_usagedes machines de ce cluster. ça évite d'avoir 50 alertes quand tout le cluster est mort
Membre depuis le 30/03/2019
voilà un exemple de
group_byà ajouter dans ton
routeprincipal ou tes sous-routes:
group_by: ['alertname', 'cluster']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
group_waitc'est pour attendre un peu avant d'envoyer la première notif pour voir si d'autres alertes arrivent pour grouper.
group_intervalc'est la période entre les re-notifs du même groupe
Membre depuis le 11/02/2020
ok je vais tester le
group_by. j'ai pas de label
clusterpar contre j'ai un label
envet
instanceje vais faire avec ça. mais pour le
high_cpu_usageça va regrouper toutes les instances de l'env en une seule notif ou ça fera une notif par instance toujours ?
Membre depuis le 16/08/2024
si tu groupes juste par
alertnameet
env, ça va regrouper toutes les instances du même
envpour le même
alertname. si tu veux une notif par instance (mais groupée si plusieurs alertes pour la même instance) alors il faut inclure
instancedans le
group_by. mais du coup tu ne groupes plus entre instances différentes. le but est de trouver le bon granularité
Membre depuis le 11/02/2020
voilà ma config actuelle, je voudrais regrouper par
alertnameet avoir le détail des instances dans la même notif slack
routes:
- match:
severity: 'critical'
receiver: 'default-receiver'
group_by: ['alertname']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
Membre depuis le 30/03/2019
d'acc. si tu groupes juste par
alertnamel'alertmanager va te donner un récap dans la notif slack. mais pour avoir les détails des instances il faut customiser le template slack de ton receiver. tu peux utiliser
{{ range .Alerts }}{{ .Labels.instance }}: {{ .Annotations.summary }}{{ end }} par exemple pour lister toutes les instances et leurs summaries
Membre depuis le 06/07/2019
oui le templating est clé pour ça. et n'oublie pas le paramètre
fordans tes règles prometheus. si une alerte se déclenche juste pour 10s et disparaît, tu peux mettre
for: 5mpour qu'elle ne se déclenche qu'après 5 minutes consécutives. ça réduit beaucoup le bruit
Membre depuis le 11/02/2020
bon j'ai appliqué le
group_by: ['alertname', 'env']et j'ai commencé à customiser le template slack pour avoir les instances. ça va déjà beaucoup mieux le nombre de notifs est divisé par 5. je vais regarder les
inhibit_ruleset les
formaintenant. thx tout le monde pour les tips
Membre depuis le 30/03/2019
nickel c'est déjà un bon début. les alertes c'est un travail continu. bon courage !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
zantoine
Membre depuis le 11/02/2020
salut à tous. on est en train de se faire submerger par les alertes prometheus. c'est surtout des alerts de type
ou . dès qu'un truc dépasse un seuil sur plusieurs serveurs ça nous spamme de notifs. on voudrait regrouper ça un peu mieux sans perdre d'infos importantes. des idées pour l'alertmanager ?