AlertManager not sending alerts for certain metrics from custom exporter

Posté par margot64 le 23/05/2024
RÉSOLU

margot64

Membre depuis le 26/05/2019

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"

Commentaires

marguerite43

Membre depuis le 17/04/2020

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

hrenaud

Membre depuis le 12/12/2018

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` ?

mrodriguez

Membre depuis le 04/05/2024

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

marguerite43

Membre depuis le 17/04/2020

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 ?

hamel-helene

Membre depuis le 02/07/2019

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`

hrenaud

Membre depuis le 12/12/2018

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

marguerite43

Membre depuis le 17/04/2020

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`

mrodriguez

Membre depuis le 04/05/2024

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 ?

hrenaud

Membre depuis le 12/12/2018

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

hamel-helene

Membre depuis le 02/07/2019

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

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