Résumé

Ce générateur regex transforme une liste d’hôtes, de chemins, de versions, de domaines d’e-mail ou de codes HTTP en motif échappé pour les règles de ciblage de déploiement, les matchers Prometheus et les filtres de logs. Vous choisissez entre la sémantique de correspondance partielle (JavaScript, Go, grep) et de correspondance complète (Prometheus, Alertmanager, Envoy), puis vous testez des lignes dans le navigateur. Rien ne quitte votre machine.

Outil gratuit

Générateur regex pour ciblage de rollout et filtres de logs

Collez les hôtes, chemins, versions ou codes HTTP à cibler. Obtenez un motif échappé pour votre moteur regex, puis testez-le sur de vraies lignes avant qu’il n’atteigne la production.

Ordinateur portable de nuit affichant une sortie de terminal filtrée sur un bureau de développeur

Générer une regex à partir d’une liste de valeurs

Choisissez ce que vous filtrez, listez les valeurs et sélectionnez le moteur. Le motif et les résultats de test se mettent à jour pendant la saisie.

Motif généré

    Fonctionnement

    Ce que le générateur fait de vos valeurs

    Échappe chaque littéral

    Les points, barres obliques, crochets et plus de vos valeurs sont échappés : api.internal.example.com ne peut donc pas correspondre à api-internal-example-com. Les listes blanches écrites à la main échouent ici plus que partout ailleurs.

    Écrit pour le moteur que vous utilisez

    Les moteurs de recherche ont besoin de ^ et de $ pour verrouiller une correspondance. Prometheus, Alertmanager et Envoy comparent la chaîne entière et demandent .* pour les règles de préfixe et de suffixe. Vous choisissez le moteur, le générateur adapte le motif.

    Teste avant la mise en production

    Chaque ligne de test reçoit un badge « correspond » ou « ne correspond pas » selon le motif que vous allez copier. Ajoutez volontairement les faux proches : checkout-v22 à côté de checkout-v2, example.com.evil.io à côté de example.com.

    Où les motifs échouent

    La regex qui a passé la revue et a quand même réveillé quelqu’un

    La plupart des incidents liés aux regex dans la configuration des déploiements et des alertes ne sont pas exotiques. Une règle de ciblage censée couvrir trois hôtes internes couvrait aussi un hôte au nom presque identique. Un matcher d’alerte écrit avec des ancres que Prometheus n’attend pas a discrètement fait disparaître un service. Un filtre de logs qui correspondait sur une sous-chaîne masquait les erreurs qu’il devait compter. Le motif est rarement trop subtil. Il est presque toujours trop large, ou n’a été testé que sur des lignes censées correspondre. Une règle qui conditionne un déploiement doit d’abord être testée sur les lignes qui ne doivent pas correspondre.

    • Échapper les points dans chaque nom d’hôte
    • Savoir si votre moteur ancre à votre place
    • Tester les faux proches, pas seulement les correspondances
    • Préférer une liste littérale à une regex quand l’ensemble est petit et stable
    Allée de baies serveur avec des voyants d’état verts
    Utilisation

    D’une liste de valeurs à un motif sur lequel vous pouvez compter

    1. 1

      Choisissez le type de correspondance

      Valeurs exactes pour les listes blanches d’hôtes et de clés de flags, préfixe pour les groupes de routes, codes HTTP pour les règles d’alerte, familles de versions pour le ciblage de déploiement par version d’application.

    2. 2

      Choisissez le moteur

      Utilisez la correspondance partielle pour le code et grep. Utilisez la correspondance complète pour les matchers Prometheus, les routes Alertmanager et Envoy. Ce seul choix supprime l’erreur d’ancrage la plus courante.

    3. 3

      Collez les faux proches dans la zone de test

      Ajoutez un hôte qui lui ressemble, une version voisine et un code HTTP juste hors de la plage. Si l’un d’eux affiche « correspond », resserrez les valeurs avant de copier le motif.

    Questions fréquentes

    Ce générateur regex est-il gratuit, et envoie-t-il mes valeurs quelque part ?
    Il est gratuit et fonctionne entièrement dans votre navigateur. Les valeurs saisies, le motif et vos lignes de test ne sont jamais envoyés à un serveur. La seule requête est un compteur anonyme qui enregistre l’utilisation de l’outil.
    Quel moteur regex le motif généré vise-t-il ?
    Deux comportements couvrent l’essentiel du travail d’infrastructure. La correspondance partielle convient à JavaScript, Go regexp, grep -E et PCRE, où un motif peut correspondre n’importe où dans la ligne ; l’outil ajoute ^ et $ quand vous en avez besoin. La correspondance complète convient à Prometheus, Alertmanager et Envoy, qui considèrent la chaîne entière comme la correspondance ; l’outil ajoute .* là où vous voulez une règle de préfixe, de suffixe ou de contenu.
    Pourquoi Prometheus ignore-t-il mes ancres ^ et $ ?
    Les matchers de labels Prometheus sont entièrement ancrés. L’expression env=~"prod" est évaluée comme ^(?:prod)$, donc un motif écrit pour grep correspondra moins que prévu, voire à rien. Choisissez le moteur de correspondance complète et le générateur écrit le motif tel que Prometheus le lit.
    Le motif évite-t-il le retour arrière catastrophique ?
    Les motifs générés n’utilisent que des littéraux, des classes de caractères bornées et des alternatives à plat. Ils ne contiennent aucun quantificateur imbriqué, qui est la cause habituelle des retours arrière incontrôlés en JavaScript et en PCRE. Les moteurs basés sur RE2, comme Go et Envoy, s’exécutent de toute façon en temps linéaire.
    Comment sont traités les caractères spéciaux ?
    Chaque valeur littérale est échappée. Un hôte comme api.internal.example.com devient api\.internal\.example\.com, si bien que le point ne correspond plus à n’importe quel caractère. C’est le bug le plus courant dans les listes blanches écrites à la main, et il laisse passer api-internal-example-com.
    Puis-je utiliser le motif dans une règle de ciblage de feature flag ?
    Oui, si votre plateforme de flags propose un opérateur regex ou « correspond au motif » sur un attribut de contexte, comme le nom d’hôte, le chemin ou l’e-mail de l’utilisateur. Vérifiez le moteur utilisé avant de coller le motif. Si elle ne propose que des opérateurs d’égalité exacte ou de préfixe, une liste de valeurs littérales est plus sûre qu’une regex.
    Que ne fait-il pas ?
    Il n’infère pas un motif à partir d’exemples et ne génère ni plages numériques ni assertions anticipées (lookahead). Il construit un motif à partir d’une liste de valeurs que vous fournissez, selon des règles que vous pouvez lire. Les lignes de test sont évaluées avec le moteur JavaScript : vérifiez le comportement propre à chaque moteur dans votre propre stack avant de déployer.

    Conditionnez le déploiement au SLO, pas à l’intuition

    Les règles de ciblage décident qui reçoit un changement. L’AI Pilot d’upstreamapi décide s’il doit continuer, et revient en arrière seul lorsque le taux d’erreur dépasse votre seuil de SLO.