AlertManager not sending alerts for certain metrics from custom exporter

margot64 23/05/2024
RÉSOLU
margot64
Auteur
Avatar de margot64
margot64
Auteur

Hello la compagnie j'ai un souci avec Prometheus/AlertManager. On a un custom exporter qui remonte bien des métriques prometheus voit les scrapes et grafana affiche bien tout. Mais pour certaines règles d'alerte basées sur ces métriques AlertManager n'envoie rien. D'autres règles pour d'autres exporters fonctionnent nickel. J'ai l'impression qu'il y a un truc qui cloche dans mon rule.yaml ou alertmanager.yaml

# Exemple de règle qui ne marche pas
- alert: MyCustomMetricHigh
  expr: my_custom_metric_gauge > 0.9
  for: 5m
  labels:
    severity: critical
  annotations:
    summary: "Custom metric {{ $labels.instance }} est trop haute"
23/05/2024 à 12:34

12 commentaires

marguerite43
Membre Actif Secouriste
Avatar de marguerite43
marguerite43
Membre Actif Secouriste

salut. première chose à vérifier va sur l'UI de prometheus /alerts. est-ce que l'alerte apparaît comme FIRING là-bas ? si elle n'est pas FIRING le problème est dans ta règle prometheus ou la métrique elle-même

Modifié le 23/05/2026 à 16:20
hrenaud
Membre Actif Secouriste
Avatar de hrenaud
hrenaud
Membre Actif Secouriste

si elle est FIRING dans prometheus alors le problème est côté alertmanager. check ta config alertmanager.yaml la section route c'est critique. tes match ou match_re correspondent bien aux labels de l'alerte qui part de prometheus ? et tes group_by ?

Modifié le 23/05/2026 à 16:20
mrodriguez
Membre Actif
Avatar de mrodriguez
mrodriguez
Membre Actif

et le for: 5m il est assez long pour que l'alerte reste FIRING pendant 5 minutes avant d'être envoyée ? des fois l'expression est vraie mais pas assez longtemps pour que l'alerte passe à l'état FIRING réel et soit envoyée

Modifié le 23/05/2026 à 16:20
marguerite43
Membre Actif Secouriste
Avatar de marguerite43
marguerite43
Membre Actif Secouriste

la métrique my_custom_metric_gauge tu l'as testée directement dans l'UI prometheus /graph avec ton expression my_custom_metric_gauge > 0.9 ? est-ce que ça te renvoie des points quand tu t'attends à ce que l'alerte fire ?

Modifié le 23/05/2026 à 16:20

y'a pas une faute de frappe dans le nom de la métrique ou les labels dans ta règle prometheus ? la casse est importante. my_custom_metric_gauge vs My_Custom_Metric_Gauge

Modifié le 23/05/2026 à 16:20
hrenaud
Membre Actif Secouriste
Avatar de hrenaud
hrenaud
Membre Actif Secouriste

et côté alertmanager t'as regardé les logs ? alertmanager --log.level=debug ça peut donner des indices sur pourquoi une alerte est reçue mais pas routée vers un receiver

Modifié le 23/05/2026 à 16:20
marguerite43
Membre Actif Secouriste
Avatar de marguerite43
marguerite43
Membre Actif Secouriste

ton custom exporter il est bien scrape par prometheus ? target status est vert ? pas d'erreurs de scrape ? si y'a des trous dans les données l'alerte peut avoir du mal à rester FIRING

Modifié le 23/05/2026 à 16:20
mrodriguez
Membre Actif
Avatar de mrodriguez
mrodriguez
Membre Actif

dans la config prometheus t'as des relabel_configs pour le job de ton custom exporter qui pourraient modifier les labels instance ou job ou d'autres trucs que tu utilises dans tes routes alertmanager ?

Modifié le 23/05/2026 à 16:20
hrenaud
Membre Actif Secouriste
Avatar de hrenaud
hrenaud
Membre Actif Secouriste

essaie de simplifier ta règle au maximum. genre my_custom_metric_gauge > 0 sans for et avec des labels hyper basiques. juste pour voir si alertmanager reçoit quelque chose de cette métrique

Modifié le 23/05/2026 à 16:20

vérifie le timestamp des métriques de ton exporter. si l'horloge du serveur exporter est décalée par rapport à prometheus ça peut créer des soucis de staleness et les alertes ne se déclenchent pas comme prévu

Modifié le 23/05/2026 à 16:20
marguerite43
Membre Actif Secouriste
Avatar de marguerite43
marguerite43
Membre Actif Secouriste

et ton alertname dans les labels de la règle est important pour le routage. t'as bien un match: ou match_re: dans alertmanager qui correspond à alertname: MyCustomMetricHigh ?

Modifié le 23/05/2026 à 16:20
margot64
Auteur
Avatar de margot64
margot64
Auteur

ok les gars c'était une combinaison de trucs comme d'hab. première chose ma règle prometheus avait un alertname qui était en fait custommetrichigh et pas mycustommetrichigh (faute de frappe en recopiant la doc). et dans alertmanager ma route était trop spécifique elle attendait severity: critical (avec un c majuscule) alors que j'envoyais severity: critical (c minuscule). une fois corrigé les deux alertes sont parties. merci pour toutes les pistes !

Modifié le 23/05/2026 à 16:20

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire