Аналитика логов
Поиск по 120 ТБ журналов без полного скана и без перебора бэктрекингом.
От сырых логов в petabyte-хранилищах до валидации полей на клиенте — разбор реальных задач, где RegExio превращает «рабочий, но страшный» regex в контракт с измеримой стоимостью.
Поиск по 120 ТБ журналов без полного скана и без перебора бэктрекингом.
Защита от ReDoS: ловля патологических паттернов до того, как они попадут в WAF.
Стабильное извлечение полей из неструктурированных форматов под нагрузкой.
Команда платформы мониторинга искала инциденты по шаблонам, которые деградировали до O(n·m) на длинных строках.
Паттерн (.*)+ERROR в пайплайне агрегации гасил ноды при пиках. RegExio переписал его в линейный вариант, показал узел деградации и дал отчёт parity по RE2 и PCRE.
Рис. 02 — разбор стоимости паттерна логов
ReDoS — это не «кто-то ввёл странную строку». Это паттерн, который сам по себе уязвим. RegExio ловит его до деплоя.
# До: вложенные кванторы — ловушка ^ ([a-zA-Z0-9]+ * )* # после: линейный, без вложенности ^ [a-zA-Z0-9]+ $ // RegExio: худший случай 1e9 → 1e5 шагов
Регулярные выражения в правилах WAF и анти-фрода — самая частая причина самоинициированных инцидентов. Один вложенный квантор и вход длиной в килобайт превращают ноду в простой.
Форматы от контрагентов меняются. Паттерн должен переживать их — предсказуемо и с отчётом о каждом извлечённом поле.
Паттерн на номера счетов и реквизиты, проверенный на 12 000 реальных образцов. RegExio показал два случая, где группа захвата возвращала пустую строку вместо null — и предложил якоря.
Паттерн, работавший на тестовых выборках, на проде с 40 МБ в сообщении уходил в 6 секунд. Статический анализ показал узел, где цена растёт квадратично; после правки — 210 мс.
Spark на JVM и Rust-обработчик в потоке использовали разные движки. RegExio зафиксировал расхождение в поведении именованных групп и предложил каноническую форму, рабочую на всех.
Каждый паттерн — с историей правок, метрикой стоимости и подписью автора. Ревью — как к коду, только с отчётом о цене исполнения.
Клиентская валидация — это паттерн, который исполняется на чужом устройстве. Его цена — это время пользователя.
RegExio даёт инструмент, который упаковывает проверенный паттерн в минимальный JS-модуль без зависимостей. Паттерн уже прошёл статический анализ и parity — фронтенд получает не «ещё один regex из головы», а контракт.
// сгенерировано RegExio · v3.2 · 2024-11-08 export const validateIBAN = (s) => { if (!/^GB\d{2}[A-Z]{4}\d{6}[0-9A-Z]{8}$/.test(s)) return { ok: false, field: 'iban' }; return { ok: true }; }; // cost: O(n) · worst: 22n шагов · parity: OK
Короткий формат для ревью: паттерн, задача, до/после и стоимость. Ниже — выдержки из реальных задач.
Платформа мониторинга, кластер ES из 42 нод.
до: 4 200 мс · после: 810 мс
CPU: −61% · цена: O(n)
Банковская инфраструктура, 3 400 правил.
найдено: 47 уязвимых
время аудита: 9 мин
фикс-паттерны: 47/47
Финтех, 12 000 реальных образцов в выборке.
до: 6 000 мс на 40 МБ
после: 210 мс
parity: 4/4 движка
Платёжный фронтенд, 14 полей формы.
вес: 2,1 КБ gzip
медиана: 0,4 мс
полей: 14 сгенерировано
Инфраструктурная команда, 600 шаблонов дашбордов.
до: 12 падений/мес
после: 0
паттернов правлено: 38
Маркетплейс, 40 млн запросов/час.
p99 до: 1 900 мс
p99 после: 60 мс
ReDoS: 0 в проде
Вставьте regex из продакшена — получите отчёт о стоимости, parity по движкам и список узлов, которые стоит переписать.