Aller au contenu

Testeur de routes Alertmanager · Observabilité

Le testeur de routes Alertmanager qui montre quel récepteur correspond — avant qu’une astreinte ne soit déclenchée.

Ce testeur de routes Alertmanager reproduit le routing dans votre navigateur : collez votre arbre de routing Alertmanager en ligne et les étiquettes (labels) d’une alerte d’exemple, puis parcourez l’arbre comme le fait Alertmanager pour voir exactement quel récepteur correspond, le fil d’Ariane du chemin de route, le comportement de continue et le regroupement effectif. Instantanément, dans votre navigateur.

S’exécute dans votre navigateur — rien de ce que vous collez ne quitte cette page. Comment nous le prouvons

S’exécute dans votre navigateur Sans inscription Fidèle au routage Mis à jour le 29 juil. 2026

Espace d’essai du testeur de routes Alertmanager

alertmanager.yml · route

Paste a route tree or full config — runs entirely in your browser.

alert labels · key=value

One label per line, e.g. severity=critical.

Tip: press Esc to release keyboard focus from an editor.

Matched receivers

Load an example or paste a route tree and an alert’s labels, then run to see which receiver(s) the alert reaches.

La faille

Un arbre de routage est du code que vous ne pouvez pas exécuter pas à pas.

Une route Alertmanager est un arbre de décision, et comme tout arbre il est facile de s’y tromper subtilement : une règle large placée au-dessus d’une règle spécifique l’occulte en silence, un continue manquant empêche l’équipe d’astreinte d’être un jour notifiée, et une regex non ancrée ne correspond discrètement à rien.

La méthode habituelle pour le découvrir consiste à déclencher une vraie alerte et à regarder où elle atterrit — lent, bruyant et risqué sur une installation en production. Le visualiseur d’arbre de routage propre à Alertmanager aide, mais vous devez tout de même raisonner sur match contre match_re contre matchers, sur l’ordre de première correspondance, et sur l’héritage, de tête. Voir la référence officielle des routes et la syntaxe des matchers.

Ce testeur fait le parcours pour vous : collez l’arbre et un ensemble d’étiquettes, et il indique le(s) récepteur(s) qu’une alerte atteint avec le chemin complet et le regroupement effectif — rien d’installé, rien d’envoyé, rien de téléversé.

Voir les règles de routage qu’il modélise, ou essayez l’espace d’essai en direct ci-dessus.

Le pipeline

Comment ça marche.

Cinq étapes déterministes s’exécutent de bout en bout à chaque évaluation — entièrement dans votre onglet de navigateur, à chaque fois.

  1. Analyser la configuration.

    Votre YAML est analysé et l’arbre de routes est résolu — un alertmanager.yml complet utilise son bloc route:, un objet route nu est pris comme racine. Les erreurs d’analyse sont signalées, pas levées.

  2. Lire les étiquettes.

    Les lignes key=value de l’alerte deviennent un ensemble d’étiquettes. Une étiquette absente est traitée comme la chaîne vide, exactement comme Alertmanager la compare.

  3. Parcourir l’arbre.

    En partant de la racine toujours correspondante, les routes enfants sont évaluées dans l’ordre. L’alerte descend dans le premier enfant correspondant ; un continue: true garde les frères suivants en jeu.

  4. Résoudre l’héritage.

    À chaque correspondance terminale, le récepteur et les champs de regroupement/minuterie sont résolus depuis l’ancêtre le plus proche qui les a définis — les valeurs qu’Alertmanager utiliserait réellement.

  5. Afficher les récepteurs.

    Chaque récepteur que l’alerte atteint est listé avec son fil d’Ariane de chemin de route, une étiquette continue le cas échéant, et le group_by effectif.

Règles de routage

Les 4 règles qui décident du routage.

Le testeur reproduit exactement cette sémantique Alertmanager : c’est ce qui vous permet de tester les matchers Alertmanager et de déboguer vos routes Alertmanager sans relancer d’alerte. Chacune ci-dessous montre le piège et la correction.

La première correspondance l’emporte (sauf continue)

ordre

À l’intérieur d’une route correspondante, les enfants sont évalués de haut en bas. L’alerte prend le PREMIER frère correspondant et s’arrête — les frères suivants sont ignorés à moins que continue: true ne soit défini.

Piège

route
# Order matters — the broad rule above shadows the specific one
routes:
  - receiver: catch-all          # matches everything below
    matchers: ['severity=~".*"']
  - receiver: db-pager           # NEVER reached
    match: { service: database }

Correction

route
# Specific first, broad last — or use continue
routes:
  - receiver: db-pager
    match: { service: database }
  - receiver: catch-all
    matchers: ['severity=~".*"']

continue: true → plusieurs récepteurs

diffusion

Une route correspondante avec continue: true n’arrête pas le balayage des frères, de sorte que l’alerte peut aussi atterrir dans une route ultérieure. Utilisez-le pour répliquer les alertes critiques vers un récepteur d’audit ou d’astreinte.

Piège

route
# Without continue, only the audit receiver fires —
# the owning team is never paged
routes:
  - receiver: all-critical-audit
    matchers: ['severity="critical"']
  - receiver: team-backend
    match: { team: backend }

Correction

route
# continue: true lets BOTH fire
routes:
  - receiver: all-critical-audit
    matchers: ['severity="critical"']
    continue: true
  - receiver: team-backend
    match: { team: backend }

Les regex sont entièrement ancrées

matchers

Alertmanager entoure chaque motif match_re et =~/!~ de ^(?:…)$. Un motif partiel ne correspond jamais à la valeur entière — une cause fréquente de « ma route ne correspond pas ».

Piège

matchers
# 'staging' only matches the value EXACTLY "staging"
matchers:
  - env=~"staging"      # env=staging-eu does NOT match

Correction

matchers
# Cover the rest of the value explicitly
matchers:
  - env=~"staging-.*"   # env=staging-eu matches

Le regroupement est hérité le long de l’arbre

regroupement

group_by, group_wait, group_interval et repeat_interval circulent d’un parent vers tout enfant qui ne définit pas le sien. La feuille que vous voyez n’est peut-être pas le regroupement qui s’applique.

Piège

route
# This leaf has no group_by of its own…
route:
  group_by: ['alertname', 'cluster']
  routes:
    - receiver: db-pager
      match: { service: database }
      # …so it INHERITS [alertname, cluster]

Correction

route
# Override only where the subtree needs it
route:
  group_by: ['alertname', 'cluster']
  routes:
    - receiver: db-pager
      match: { service: database }
      group_by: ['alertname', 'cluster', 'database']

L’exemple de routage complet dans la documentation Alertmanagerun récepteur racine avec des enfants team-X / team-Y / database — se charge comme premier exemple dans l’espace d’essai.

Continuez

Testez le reste de votre pipeline d’alerting.

Le routage est le dernier saut. Obtenez les bonnes étiquettes à la source — relabellisez-les au moment où elles sont scrapées, et prouvez que vos règles d’alerte se déclenchent — et l’arbre de routes ci-dessus disposera des bonnes étiquettes pour travailler.

FAQ

Vos questions, nos réponses.

Appuyez sur une question pour afficher la réponse.

Pour tester le routing Alertmanager, collez votre arbre de routes (ou un alertmanager.yml complet — seul son bloc route est lu) ainsi que les étiquettes d’une alerte d’exemple. Le testeur reproduit le parcours d’Alertmanager dans votre navigateur et affiche quel récepteur ou quels récepteurs l’alerte atteindrait, le fil d’Ariane exact du chemin de route depuis la racine jusqu’au nœud correspondant, si un continue:true a fait déclencher plusieurs récepteurs, et le group_by effectif après héritage. C’est une simulation à blanc qui répond à la question « quel receiver correspond » sans envoyer la moindre notification.

amtool config routes test est la commande CLI officielle d’Alertmanager : vous lui passez un alertmanager.yml et un ensemble d’étiquettes, et elle imprime le récepteur correspondant. Ce testeur de routes Alertmanager en ligne fait la même chose dans le navigateur, sans binaire ni instance à installer — pratique pour déboguer rapidement les routes Alertmanager ou partager un cas reproductible. Là où amtool affiche le récepteur final, ce testeur montre en plus l’arbre de routing complet : le chemin parcouru, le comportement de continue et le group_by hérité.

La cause la plus fréquente est l’ordre à première correspondance : une route large placée au-dessus d’une route spécifique l’occulte, et l’alerte atterrit sur le mauvais récepteur. Viennent ensuite les regex non ancrées (un match_re partiel ne correspond pas) et les matchers Alertmanager mal formulés. Collez votre arbre et les étiquettes dans le testeur pour voir exactement quel receiver correspond et quel matcher a échoué — c’est la façon la plus rapide de déboguer des routes Alertmanager sans relancer une vraie alerte.

Par défaut, dès qu’une alerte correspond à une route dans une liste de frères, Alertmanager cesse de parcourir le reste de cette liste. Définir continue: true sur une route correspondante indique à Alertmanager de continuer à évaluer aussi les frères suivants, de sorte que l’alerte puisse atterrir dans plus d’un récepteur. C’est ainsi que les équipes répliquent chaque alerte critique vers un récepteur d’audit ou d’astreinte tout en l’acheminant vers l’équipe responsable. Le testeur affiche chaque récepteur produit par un continue, étiqueté pour que vous voyiez quelles correspondances proviennent d’une descente en cascade.

Oui, mais seulement via continue: true. Sans lui, l’ordre à première correspondance garantit qu’un seul récepteur se déclenche par liste de frères. Avec continue: true sur une route correspondante, l’alerte poursuit l’évaluation et peut atteindre plusieurs récepteurs. Le testeur liste chaque récepteur correspondant avec son chemin de route, ce qui permet de vérifier d’un coup d’œil combien de receivers une seule alerte déclenche réellement.

C’est précisément le but de cet outil : tester l’arbre de routing Alertmanager en ligne, sans serveur, sans amtool et sans instance Alertmanager active. Tout s’exécute à 100 % côté client. Votre arbre de routes et les étiquettes d’alerte sont analysés et évalués à l’intérieur de votre onglet de navigateur — rien n’est envoyé, et il n’y a ni compte ni inscription. Vous pouvez coller en toute sécurité des configurations internes, y compris des noms de récepteurs, des étiquettes de webhook quasi secrètes et des noms d’équipes privés.

Le visualiseur d’arbre de routing intégré à Alertmanager (côté Prometheus) montre la structure, mais il n’évalue pas vos étiquettes contre les matchers — il ne sait donc pas quelle route une alerte concrète emprunterait. Il ne tient pas non plus compte de l’ancrage des regex ni de l’ordre à première correspondance dans votre tête. Ce testeur va plus loin : collez de vraies étiquettes et il parcourt l’arbre de routing Alertmanager en ligne pour vous dire exactement quel nœud correspond et pourquoi, au lieu d’afficher seulement la forme de l’arbre.

Chaque alerte entre par la route racine, qui est le fourre-tout. À l’intérieur d’une route correspondante, les routes enfants sont évaluées de haut en bas et l’alerte descend dans le premier enfant dont tous les matchers Alertmanager sont vérifiés, puis continue dans ce sous-arbre. Si une route correspondante n’a aucun enfant correspondant, elle est la correspondance terminale et son récepteur se déclenche. La règle que l’on comprend souvent de travers est l’ordre à première correspondance : seul le premier frère correspondant est retenu, sauf si continue est défini. Le testeur rend cet ordre visible en affichant le chemin de route complet.

More free, private DevOps tools.

Le testeur de routes Alertmanager est l’un des outils de OpsCanopy — une canopée grandissante de validateurs, de convertisseurs et de testeurs basés sur le navigateur qui ne touchent jamais à un serveur.

39 outils gratuits, tous utilisables hors ligne — opscanopy.com fonctionne sans inscription et sans rien téléverser.

Outils connexes : le testeur de relabel Prometheus et le testeur de règles d’alerte Loki. Parcourez le répertoire complet des outils.

Non affilié au projet Prometheus ni à la Cloud Native Computing Foundation, ni approuvé ou sponsorisé par eux. Prometheus et Alertmanager ne sont utilisés ici qu’à titre descriptif, pour identifier le format de configuration que cet outil vérifie.