Resumo
Este gerador de regex transforma uma lista de hosts, caminhos, versões, domínios de e-mail ou códigos de status HTTP em um padrão escapado para regras de targeting de rollout, matchers do Prometheus e filtros de log. Você escolhe entre a semântica de correspondência por busca (JavaScript, Go, grep) e de correspondência completa (Prometheus, Alertmanager, Envoy), e depois testa linhas no navegador. Nada sai da sua máquina.
Gerador de regex para targeting de rollout e filtros de log
Cole os hosts, caminhos, versões ou códigos de status que você quer casar. Receba um padrão escapado para o seu motor de regex e teste-o com linhas reais antes que ele chegue à produção.

O que o gerador faz com os seus valores
Escapa cada literal
Pontos, barras, colchetes e sinais de mais nos seus valores são escapados, então api.internal.example.com não casa com api-internal-example-com. Listas de permissão escritas à mão falham aqui mais do que em qualquer outro lugar.
Escreve para o motor que você usa
Motores de busca precisam de ^ e $ para fixar uma correspondência. Prometheus, Alertmanager e Envoy casam a string inteira e precisam de .* em regras de prefixo e sufixo. Você escolhe o motor e o gerador adapta o padrão.
Testa antes de publicar
Cada linha de teste recebe um selo de correspondência ou sem correspondência, usando o padrão que você está prestes a copiar. Inclua de propósito os quase-casos: checkout-v22 ao lado de checkout-v2, example.com.evil.io ao lado de example.com.
A regex que passou na revisão e mesmo assim acordou alguém
A maioria dos incidentes com regex em configurações de rollout e de alertas não é exótica. Uma regra de targeting que devia cobrir três hosts internos também cobriu um sósia. Um matcher de alerta escrito com âncoras que o Prometheus não precisa deixou um serviço de fora sem aviso. Um filtro de log que casou por substring escondeu os erros que ele devia contar. O padrão raramente é esperto demais. Quase sempre é frouxo demais, ou foi testado só em linhas que deveriam casar. Uma regra que controla um rollout deve ser testada primeiro nas linhas que não podem casar.
- Escape os pontos em todo hostname
- Saiba se o seu motor ancora por você
- Teste os quase-casos, não só os acertos
- Prefira uma lista literal a uma regex quando o conjunto for pequeno e estável
De uma lista de valores a um padrão em que você confia
-
1
Escolha o tipo de correspondência
Valores exatos para listas de permissão de hosts e chaves de flag, prefixo para grupos de rotas, códigos de status para regras de alerta e famílias de versão para targeting de rollout por versão do app.
-
2
Escolha o motor
Use correspondência por busca para código e grep. Use correspondência completa para matchers do Prometheus, rotas do Alertmanager e Envoy. Essa única escolha elimina o erro de âncora mais comum.
-
3
Cole os quase-casos na caixa de teste
Adicione um host parecido, uma versão vizinha e um código de status logo fora do intervalo. Se algum deles mostrar correspondência, aperte os valores antes de copiar o padrão.
Perguntas frequentes
Este gerador de regex é grátis e envia meus valores para algum lugar?
Qual motor de regex o resultado usa como alvo?
Por que o Prometheus ignora minhas âncoras ^ e $?
O padrão evita backtracking catastrófico?
Como os caracteres especiais são tratados?
Posso usar o padrão em uma regra de targeting de feature flag?
O que ele não faz?
Condicione o rollout ao SLO, não a um palpite
Regras de targeting decidem quem recebe uma mudança. O AI Pilot do upstreamapi decide se ela continua e reverte sozinho quando a taxa de erro ultrapassa o limite do seu SLO.