Resumen

Este generador de regex convierte una lista de hosts, rutas, versiones, dominios de correo o códigos de estado HTTP en un patrón escapado para reglas de targeting de rollouts, matchers de Prometheus y filtros de logs. Eliges entre la semántica de coincidencia parcial (JavaScript, Go, grep) y de coincidencia completa (Prometheus, Alertmanager, Envoy), y luego pruebas líneas en el navegador. Nada sale de tu máquina.

Herramienta gratuita

Generador de regex para targeting de rollouts y filtros de logs

Pega los hosts, rutas, versiones o códigos de estado que quieres coincidir. Obtén un patrón escapado para tu motor de regex y compruébalo con líneas reales antes de llevarlo a producción.

Portátil de noche mostrando una salida de terminal filtrada en un escritorio de desarrollador

Genera un regex a partir de una lista de valores

Elige qué quieres coincidir, escribe los valores y elige el motor. El patrón y los resultados de la prueba se actualizan mientras escribes.

Patrón generado

    Cómo funciona

    Qué hace el generador con tus valores

    Escapa cada literal

    Los puntos, barras, corchetes y signos más de tus valores se escapan, así que api.internal.example.com no puede coincidir con api-internal-example-com. Las listas de permitidos escritas a mano fallan aquí más que en ningún otro sitio.

    Escribe para el motor que usas

    Los motores de búsqueda necesitan ^ y $ para fijar una coincidencia. Prometheus, Alertmanager y Envoy comparan la cadena completa y necesitan .* para las reglas de prefijo y sufijo. Tú eliges el motor y el generador adapta el patrón.

    Pruebas antes de desplegar

    Cada línea de prueba recibe una insignia de coincidencia o no coincidencia con el patrón que vas a copiar. Añade los casos límite a propósito: checkout-v22 junto a checkout-v2, example.com.evil.io junto a example.com.

    Dónde fallan los patrones

    La regex que pasó la revisión y aun así despertó a alguien

    La mayoría de los incidentes con regex en la configuración de rollouts y alertas no son exóticos. Una regla de targeting pensada para tres hosts internos también cubrió un dominio parecido. Un matcher de alerta escrito con anclas que Prometheus no necesita dejó caer un servicio en silencio. Un filtro de logs que coincidía con una subcadena ocultó los errores que debía contar. El patrón rara vez es demasiado sofisticado. Casi siempre es demasiado laxo, o solo se probó con líneas que se suponía que debían coincidir. Una regla que controla un rollout debe probarse primero con las líneas que no deben coincidir.

    • Escapa los puntos en cada hostname
    • Comprueba si tu motor ancla por ti
    • Prueba los casos límite, no solo los aciertos
    • Prefiere una lista literal a una regex cuando el conjunto es pequeño y estable
    Pasillo de racks de servidores con luces de estado verdes
    Uso

    De una lista de valores a un patrón en el que puedes confiar

    1. 1

      Elige el tipo de coincidencia

      Valores exactos para listas de permitidos de hosts y claves de flags, prefijo para grupos de rutas, códigos de estado para reglas de alerta y familias de versiones para el targeting de rollouts por versión de app.

    2. 2

      Elige el motor

      Usa coincidencia parcial para código y grep. Usa coincidencia completa para matchers de Prometheus, rutas de Alertmanager y Envoy. Esta única elección elimina el error de anclaje más común.

    3. 3

      Pega los casos límite en la caja de prueba

      Añade un host parecido, una versión vecina y un código de estado justo fuera del rango. Si alguno aparece como coincidencia, ajusta los valores antes de copiar el patrón.

    Preguntas frecuentes

    ¿Es gratis este generador de regex y envía mis valores a algún sitio?
    Es gratis y se ejecuta por completo en tu navegador. Los valores que escribes, el patrón y tus líneas de prueba nunca se envían a un servidor. La única petición es un contador anónimo que registra que se usó la herramienta.
    ¿Qué motor de regex es el destino del resultado?
    Dos comportamientos cubren la mayor parte del trabajo de infraestructura. La coincidencia parcial encaja con JavaScript, Go regexp, grep -E y PCRE, donde un patrón puede coincidir en cualquier parte de la línea, así que la herramienta añade ^ y $ cuando los necesitas. La coincidencia completa encaja con Prometheus, Alertmanager y Envoy, que tratan la cadena entera como coincidencia, así que la herramienta añade .* donde quieres una regla de prefijo, sufijo o contención.
    ¿Por qué Prometheus ignora mis anclas ^ y $?
    Los matchers de etiquetas de Prometheus están totalmente anclados. La expresión env=~"prod" se evalúa como ^(?:prod)$, así que un patrón escrito para grep coincidirá con menos de lo que esperas, o con nada. Elige el motor de coincidencia completa y el generador escribe el patrón tal como lo lee Prometheus.
    ¿El patrón evita el backtracking catastrófico?
    Los patrones generados usan solo literales, clases de caracteres acotadas y alternancias planas. No contienen cuantificadores anidados, que es la causa habitual del backtracking descontrolado en JavaScript y PCRE. Los motores basados en RE2, como Go y Envoy, se ejecutan en tiempo lineal en cualquier caso.
    ¿Cómo se tratan los caracteres especiales?
    Cada valor literal se escapa. Un host como api.internal.example.com se convierte en api\.internal\.example\.com, así que el punto ya no coincide con cualquier carácter. Es el error más común en las listas de permitidos escritas a mano, y deja pasar api-internal-example-com.
    ¿Puedo usar el patrón en una regla de targeting de feature flags?
    Sí, siempre que tu plataforma de flags soporte un operador de regex o de coincidencia de patrón sobre un atributo de contexto, como el hostname, la ruta o el email del usuario. Comprueba qué motor usa antes de pegarlo. Si solo ofrece operadores de coincidencia exacta o de empieza por, una lista de valores literales es más segura que una regex.
    ¿Qué no hace?
    No infiere un patrón a partir de ejemplos y no genera rangos numéricos ni lookaheads. Construye un patrón a partir de la lista de valores que le das, siguiendo reglas que puedes leer. Las líneas de prueba se evalúan con el motor de JavaScript, así que confirma el comportamiento específico de cada motor en tu propio stack antes de desplegar.

    Condiciona el rollout al SLO, no a una corazonada

    Las reglas de targeting deciden quién recibe un cambio. El AI Pilot de upstreamapi decide si el cambio sigue adelante y revierte por su cuenta cuando la tasa de errores supera tu umbral de SLO.