Riassunto
Questo generatore regex trasforma una lista di host, percorsi, versioni, domini email o codici di stato HTTP in un pattern con escape per regole di targeting, matcher di Prometheus e filtri di log. Scegli tra semantica di ricerca (JavaScript, Go, grep) e match completo (Prometheus, Alertmanager, Envoy), poi testa le righe nel browser. Nulla lascia il tuo computer.
Generatore regex per il targeting dei rilasci e i filtri di log
Incolla gli host, i percorsi, le versioni o i codici di stato da far corrispondere. Ottieni un pattern con escape per il tuo motore regex, poi verificalo su righe reali prima che arrivi in produzione.

Cosa fa il generatore con i tuoi valori
Applica l'escape a ogni letterale
Punti, slash, parentesi e segni più nei tuoi valori vengono sottoposti a escape, quindi api.internal.example.com non può corrispondere a api-internal-example-com. Le allowlist scritte a mano falliscono qui più che altrove.
Scrive per il motore che usi
I motori di ricerca hanno bisogno di ^ e $ per fissare una corrispondenza. Prometheus, Alertmanager ed Envoy confrontano l'intera stringa e richiedono .* per le regole di prefisso e suffisso. Scegli il motore e il generatore adatta il pattern.
Testa prima di rilasciare
Ogni riga di test riceve un badge di corrispondenza o di non corrispondenza usando il pattern che stai per copiare. Aggiungi di proposito i falsi positivi: checkout-v22 accanto a checkout-v2, example.com.evil.io accanto a example.com.
La regex che ha superato la review e ha comunque svegliato qualcuno
La maggior parte degli incidenti legati alle regex nella configurazione di rilasci e alerting non è esotica. Una regola di targeting pensata per coprire tre host interni ha coperto anche un sosia. Un alert matcher scritto con ancore che Prometheus non richiede ha escluso in silenzio un servizio. Un filtro di log che confrontava una sottostringa ha nascosto proprio gli errori che doveva contare. Il pattern è raramente troppo sofisticato. Quasi sempre è troppo permissivo, oppure è stato testato solo su righe che dovevano corrispondere. Una regola che controlla un rilascio va testata prima di tutto sulle righe che non devono corrispondere.
- Applica l'escape ai punti in ogni hostname
- Sappi se il tuo motore applica le ancore da solo
- Testa i falsi positivi, non solo i casi che devono corrispondere
- Preferisci una lista letterale a una regex quando l'insieme è piccolo e stabile
Da una lista di valori a un pattern di cui ti fidi
-
1
Scegli il tipo di corrispondenza
Valori esatti per le allowlist di host e chiavi di flag, prefisso per i gruppi di route, codici di stato per le regole di alert, famiglie di versioni per il targeting dei rilasci per versione dell'app.
-
2
Scegli il motore
Usa la ricerca per il codice e grep. Usa il match completo per i matcher di Prometheus, le route di Alertmanager ed Envoy. Questa sola scelta elimina l'errore più comune sulle ancore.
-
3
Incolla i falsi positivi nel box di test
Aggiungi un host simile, una versione vicina e un codice di stato appena fuori dall'intervallo. Se uno di questi risulta corrispondente, stringi i valori prima di copiare il pattern.
Domande frequenti
Questo generatore regex è gratuito e invia i miei valori da qualche parte?
Quale motore regex supporta l'output?
Perché Prometheus ignora le mie ancore ^ e $?
Il pattern evita il backtracking catastrofico?
Come vengono gestiti i caratteri speciali?
Posso usare il pattern in una regola di targeting di un feature flag?
Cosa non fa?
Subordina il rilascio allo SLO, non all'intuito
Le regole di targeting decidono chi riceve una modifica. L'AI Pilot di upstreamapi decide se il rilascio prosegue e torna indietro da solo quando il tasso di errore supera la soglia del tuo SLO.