Summary

Ten generator regex zamienia listę hostów, ścieżek, wersji, domen e-mail lub kodów statusu HTTP we wzorzec z escapowanymi znakami, gotowy do reguł targetowania rolloutów, matcherów Prometheus i filtrów logów. Wybierasz między dopasowaniem w dowolnym miejscu linii (JavaScript, Go, grep) a pełnym dopasowaniem całego ciągu (Prometheus, Alertmanager, Envoy), a potem testujesz linie w przeglądarce. Nic nie opuszcza Twojej maszyny.

Darmowe narzędzie

Generator regex do reguł targetowania i filtrów logów

Wklej hosty, ścieżki, wersje albo kody statusu, które chcesz dopasować. Dostaniesz wzorzec z escapowaniem dla Twojego silnika regex, a potem sprawdzisz go na prawdziwych liniach, zanim trafi na produkcję.

Laptop nocą z przefiltrowanym wyjściem terminala na biurku programisty

Wygeneruj regex z listy wartości

Wybierz, co dopasowujesz, wpisz wartości i wybierz silnik. Wzorzec i wyniki testów aktualizują się podczas pisania.

Wygenerowany wzorzec

    Jak to działa

    Co generator robi z Twoimi wartościami

    Escapuje każdy literał

    Kropki, ukośniki, nawiasy i plusy w wartościach są escapowane, więc api.internal.example.com nie dopasuje api-internal-example-com. Ręcznie pisane allowlisty psują się tu częściej niż gdziekolwiek indziej.

    Pisze pod silnik, którego używasz

    Wyszukiwarki potrzebują ^ i $, żeby przypiąć dopasowanie. Prometheus, Alertmanager i Envoy dopasowują cały ciąg i potrzebują .* dla reguł prefiksu i sufiksu. Wybierasz silnik, a generator dopasowuje do niego wzorzec.

    Testuj przed wdrożeniem

    Każda linia testowa dostaje odznakę dopasowania lub jego braku, liczoną dla wzorca, który zamierzasz skopiować. Dodawaj bliskie nietrafienia celowo: checkout-v22 obok checkout-v2, example.com.evil.io obok example.com.

    Gdzie wzorce zawodzą

    Regex, który przeszedł review i mimo to kogoś obudził

    Większość incydentów związanych z regex w konfiguracji rolloutów i alertów nie jest egzotyczna. Reguła targetowania, która miała objąć trzy wewnętrzne hosty, objęła też ich sobowtóra. Matcher alertu, napisany z kotwicami, których Prometheus nie potrzebuje, po cichu wyciszył jeden serwis. Filtr logów dopasował podciąg i ukrył błędy, które miał liczyć. Wzorzec rzadko jest zbyt sprytny. Prawie zawsze jest zbyt luźny albo przetestowano go tylko na liniach, które miały pasować. Reguła, która bramkuje rollout, powinna najpierw być przetestowana na liniach, które NIE mogą pasować. Zanim wdrożysz regułę, zapisz listę hostów i wersji, które mają zostać poza nią, i wklej je do pola testów.

    • Escapuj kropki w każdej nazwie hosta
    • Wiedz, czy Twój silnik dopasowuje kotwice za Ciebie
    • Testuj bliskie nietrafienia, nie tylko trafienia
    • Wybierz listę literałów zamiast regex, gdy zbiór jest mały i stabilny
    Alejka szaf serwerowych z zielonymi lampkami statusu
    Użycie

    Od listy wartości do wzorca, któremu ufasz

    1. 1

      Wybierz typ dopasowania

      Dokładne wartości dla allowlist hostów i kluczy flag, prefiks dla grup tras, kody statusu dla reguł alertów, rodziny wersji dla targetowania rolloutów po wersji aplikacji. Ten wybór decyduje, co generator uzna za literał, a co za wzorzec.

    2. 2

      Wybierz silnik

      Użyj dopasowania w dowolnym miejscu dla kodu i grep. Użyj pełnego dopasowania dla matcherów Prometheus, tras Alertmanagera i Envoy. Ten jeden wybór usuwa najczęstszy błąd z kotwicami.

    3. 3

      Wklej bliskie nietrafienia do pola testów

      Dodaj podobny host, sąsiednią wersję i kod statusu tuż poza zakresem. Jeśli którykolwiek pokaże dopasowanie, zaostrz wartości, zanim skopiujesz wzorzec.

    Częste pytania

    Czy ten generator regex jest darmowy i czy wysyła gdziekolwiek moje wartości?
    Jest darmowy i działa w całości w przeglądarce. Wpisane wartości, wzorzec i linie testowe nigdy nie trafiają na serwer. Jedyne żądanie to anonimowy licznik, który rejestruje sam fakt użycia narzędzia.
    Jakiego silnika regex celuje wynik?
    Dwa tryby pokrywają większość pracy z infrastrukturą. Dopasowanie w dowolnym miejscu pasuje do JavaScript, Go regexp, grep -E i PCRE, gdzie wzorzec może trafić w dowolne miejsce linii, więc narzędzie dodaje ^ i $ wtedy, gdy są potrzebne. Pełne dopasowanie pasuje do Prometheus, Alertmanagera i Envoy, które traktują cały ciąg jako dopasowanie, więc narzędzie dodaje .* tam, gdzie chcesz regułę prefiksu, sufiksu lub zawierania.
    Dlaczego Prometheus ignoruje moje kotwice ^ i $?
    Matchery etykiet Prometheus są w pełni zakotwiczone. Wyrażenie env=~"prod" jest oceniane jako ^(?:prod)$, więc wzorzec napisany pod grep po cichu dopasuje mniej, niż oczekujesz, albo nic. Wybierz pełne dopasowanie, a generator napisze wzorzec tak, jak czyta go Prometheus.
    Czy wzorzec unika katastrofalnego backtrackingu?
    Generowane wzorce używają wyłącznie literałów, ograniczonych klas znaków i płaskich alternatyw. Nie zawierają zagnieżdżonych kwantyfikatorów, które są typowym źródłem niekontrolowanego backtrackingu w JavaScript i PCRE. Silniki oparte na RE2, jak Go i Envoy, działają w czasie liniowym niezależnie od tego.
    Jak obsługiwane są znaki specjalne?
    Każdy literał jest escapowany. Host taki jak api.internal.example.com staje się api\.internal\.example\.com, więc kropka nie pasuje już do dowolnego znaku. To najczęstszy błąd w ręcznie pisanych allowlistach, który przepuszcza api-internal-example-com.
    Czy mogę użyć wzorca w regule targetowania flagi?
    Tak, o ile Twoja platforma flag obsługuje operator regex lub matches-pattern na atrybucie kontekstu, takim jak hostname, path czy e-mail użytkownika. Sprawdź, którego silnika używa, zanim wkleisz wzorzec. Jeśli oferuje tylko dopasowanie dokładne lub operator zaczyna się od, bezpieczniejsza jest lista literałów niż regex.
    Czego generator nie robi?
    Nie wnioskuje wzorca z przykładów i nie generuje zakresów liczbowych ani lookaheadów. Buduje wzorzec z listy wartości, które podajesz, według zasad, które możesz przeczytać. Linie testowe są oceniane silnikiem JavaScript, więc przed wdrożeniem potwierdź zachowanie specyficzne dla silnika w swoim stacku.

    Zamykaj rollout bramką SLO, a nie przeczuciem

    Reguły targetowania decydują, kto dostaje zmianę. AI Pilot upstreamapi decyduje, czy rollout jest kontynuowany, i sam cofa zmianę, gdy wskaźnik błędów przekroczy próg SLO.