Pular para o conteúdo

Alertmanager Route Tester · Observabilidade

Testador de rotas do Alertmanager — veja qual receiver corresponde antes de o alerta acionar alguém.

Este testador de rotas do Alertmanager online deixa você colar uma árvore de rotas e as labels de um alerta de exemplo, e então percorre a árvore do jeito que o Alertmanager faz: receiver(s) correspondente(s), o caminho da rota, o comportamento do continue e o agrupamento efetivo. Descubra na hora qual receiver corresponde ao alerta, direto no seu navegador.

Roda no seu navegador — nada do que você cola sai desta página. Como comprovamos isso

Roda no seu navegador Sem cadastro Fiel ao roteamento Atualizado em 29 de jul. de 2026

Playground do Alertmanager Route Tester

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.

A lacuna

Uma árvore de roteamento é código que você não consegue percorrer passo a passo.

Uma rota do Alertmanager é uma árvore de decisão e, como qualquer árvore, é fácil de errar de forma sutil: uma regra ampla colocada acima de uma específica a esconde silenciosamente, um continue faltando impede que a equipe de plantão seja acionada algum dia, e uma regex não ancorada quietamente não combina com nada.

A forma usual de descobrir é disparar um alerta de verdade e observar onde ele cai — lento, ruidoso e arriscado em um ambiente ao vivo. O próprio visualizador da árvore de roteamento do Alertmanager ajuda, mas você ainda tem que raciocinar de cabeça sobre match vs. match_re vs. matchers, a ordenação de first-match e a herança. Veja a referência de route e a sintaxe de matcher oficiais.

Este testador faz o percurso por você: cole a árvore e um conjunto de labels para depurar rotas do Alertmanager e testar os matchers contra labels reais. Ele reporta o(s) receiver(s) que um alerta alcança com o caminho completo e o agrupamento efetivo — nada instalado, nada enviado, nada subido para servidor.

Veja as regras de roteamento que ele modela, ou experimente o playground ao vivo acima.

O pipeline

Como funciona.

Cinco passos determinísticos rodam de ponta a ponta em cada avaliação — todos dentro da aba do seu navegador, toda vez.

  1. Analisa a configuração.

    Seu YAML é analisado e a árvore de rotas é resolvida — um alertmanager.yml completo usa o bloco route: dele, um objeto de rota puro é tomado como a raiz. Os erros de análise são reportados, não lançados.

  2. Lê as labels.

    As linhas key=value do alerta viram um conjunto de labels. Uma label ausente é tratada como string vazia, exatamente como o Alertmanager a compara.

  3. Percorre a árvore.

    Partindo da raiz que sempre combina, as rotas filhas são avaliadas em ordem. O alerta desce para a primeira filha correspondente; um continue: true mantém as irmãs seguintes em jogo.

  4. Resolve a herança.

    Em cada match terminal, o receiver e os campos de agrupamento/timer são resolvidos a partir do ancestral mais próximo que os definiu — os valores que o Alertmanager de fato usaria.

  5. Mostra os receivers.

    Cada receiver que o alerta alcança é listado com o caminho da sua rota, uma marcação de continue quando relevante, e o group_by efetivo.

Regras de roteamento

As 4 regras que decidem o roteamento.

O testador reproduz exatamente essa semântica do Alertmanager. Cada uma abaixo mostra a armadilha e a solução.

A primeira correspondência vence (a menos que haja continue)

ordem

Dentro de uma rota correspondente, as filhas são avaliadas de cima para baixo. O alerta toma a PRIMEIRA irmã correspondente e para — as irmãs seguintes são puladas, a menos que continue: true esteja definido.

Armadilha

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 }

Solução

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

continue: true → múltiplos receivers

fan-out

Uma rota correspondente com continue: true não interrompe a varredura das irmãs, então o alerta também pode cair em uma rota posterior. Use isso para espelhar alertas críticos para um receiver de auditoria ou de paging.

Armadilha

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 }

Solução

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

As regexes são totalmente ancoradas

matchers

O Alertmanager envolve todo padrão match_re e =~/!~ como ^(?:…)$. Um padrão parcial nunca combina com o valor inteiro — uma causa frequente de "minha rota não está combinando".

Armadilha

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

Solução

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

O agrupamento é herdado árvore abaixo

agrupamento

group_by, group_wait, group_interval e repeat_interval fluem de um pai para qualquer filha que não defina o seu próprio. A folha que você vê pode não ser o agrupamento que se aplica.

Armadilha

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]

Solução

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']

O exemplo completo de roteamento na documentação do Alertmanagerum receiver raiz com filhas team-X / team-Y / database — carrega como o primeiro exemplo no playground.

Continue

Teste o resto do seu pipeline de alerting.

O roteamento é o último salto. Acerte as labels na origem — faça o relabel delas conforme são coletadas, e prove que as suas regras de alerta disparam — e a árvore de rotas acima terá as labels certas para trabalhar.

FAQ

Suas perguntas, respondidas.

Toque em uma pergunta para expandir a resposta.

Cole a sua árvore de rotas (ou um alertmanager.yml completo — apenas o bloco route dele é lido) e as labels de um alerta de exemplo neste testador de rotas do Alertmanager online. Ele reproduz o percurso de roteamento do Alertmanager dentro do navegador e mostra qual receiver, ou quais receivers, o alerta alcançaria, o caminho exato da rota desde a raiz até o nó correspondente, se um continue: true fez disparar mais de um receiver, e o group_by efetivo após a herança. É uma simulação do despacho, sem enviar uma única notificação, então você descobre qual receiver corresponde ao alerta no Alertmanager antes de ele acionar alguém.

O amtool config routes test resolve a árvore de rotas do seu alertmanager.yml contra um conjunto de matchers de label e imprime os receivers que um alerta atingiria, espelhando como o Alertmanager em execução despacha. Esta página é um amtool routes test online no navegador: faz o mesmo percurso na árvore de rotas no lado do cliente, então você consegue testar o roteamento do Alertmanager sem instalar o amtool nem apontá-lo para uma config ao vivo. Cole a árvore, cole as labels e leia os receivers correspondentes e o caminho.

Quase sempre é ordem de rotas, uma regex não ancorada ou um continue faltando. Dentro de uma rota correspondente, as irmãs são avaliadas de cima para baixo e só a primeira correspondência é tomada — então uma regra ampla colocada acima de uma específica a esconde silenciosamente. Os padrões match_re e =~ são totalmente ancorados, então env=~"staging" nunca combina com staging-eu. Use este recurso para depurar rotas do Alertmanager: percorra a árvore contra as labels exatas e veja qual nó de fato combinou, o que deixa óbvia a resposta para "por que meu alerta está indo para o receiver errado".

Por padrão, assim que um alerta combina com uma rota em uma lista de irmãs, o Alertmanager para de varrer o restante daquela lista. Definir continue: true em uma rota correspondente diz ao Alertmanager para continuar avaliando também as irmãs seguintes, para que o alerta possa cair em mais de um receiver — a forma usual de as equipes espelharem todo alerta crítico para um receiver de auditoria ou de paging enquanto ainda o roteiam para a equipe dona. Ao testar o roteamento do Alertmanager aqui, a ferramenta marca cada receiver que um continue: true produz, para que você veja exatamente quais correspondências vieram do encadeamento.

Sim — mas só quando continue: true está definido em uma rota correspondente. Sem ele, a primeira irmã correspondente vence e a varredura para, então um alerta alcança exatamente um receiver por lista de rotas. Com continue: true, o alerta continua descendo pelas irmãs seguintes e pode se ramificar para vários receivers. Este testador mostra cada receiver na ordem em que dispara, para que você confirme que o fan-out é o que pretendia e veja claramente qual receiver corresponde ao alerta no Alertmanager.

Você não precisa de um Alertmanager em execução, e não precisa do amtool. Este é um testador de rotas do Alertmanager online, grátis e sem instalação: tudo roda 100% no lado do cliente, dentro da aba do seu navegador. Cole a sua árvore de rotas e as labels do alerta para testar a sua config de roteamento e simular o roteamento de alertas do Alertmanager no navegador. Nada é enviado e não há cadastro, então você pode colar com segurança nomes de receivers internos e labels de equipes privadas.

O editor da árvore de rotas do Prometheus visualiza a árvore, mas ainda deixa você raciocinar de cabeça sobre match vs. match_re vs. matchers, a ordenação de first-match e a herança — então ele pode parecer certo enquanto um alerta roteia para outro lugar. Se o editor da árvore de rotas não está combinando com as rotas que você espera, use isto como alternativa: testar os matchers do Alertmanager contra labels online. O testador percorre a semântica real e destaca o caminho correspondente, em vez de apenas desenhar a árvore de rotas do Alertmanager online.

Todo alerta entra pela rota raiz, que é o catch-all. Dentro de uma rota correspondente, as rotas filhas são avaliadas de cima para baixo, e o alerta desce para a primeira filha cujos matchers sejam todos satisfeitos — por exemplo, o primeiro nó que exige uma label severity="critical". Ele continua descendo por aquela subárvore; se uma rota correspondente não tiver nenhuma filha que combine, essa rota é o match terminal e o receiver dela dispara. A regra que as pessoas erram é ordem somada a first-match: apenas a primeira irmã correspondente é tomada, a menos que continue: true esteja definido.

More free, private DevOps tools.

O Alertmanager Route Tester é uma ferramenta dentro do OpsCanopy — uma copa crescente de validadores, conversores e testadores baseados em navegador que nunca tocam um servidor.

39 ferramentas gratuitas, todas capazes de funcionar offline — o opscanopy.com não exige cadastro e não envia nada.

Ferramentas relacionadas: o testador de relabel do Prometheus e o testador de regras de alerta do Loki. Explore o diretório completo de ferramentas.

Não é afiliado, endossado nem patrocinado pelo projeto Prometheus nem pela Cloud Native Computing Foundation. Prometheus e Alertmanager são usados aqui apenas de forma descritiva, para identificar o formato de configuração que esta ferramenta verifica.