Пользовательские события

Как включить логирование случаев, когда метрика отклонилась от нормы, и получать о них уведомления.

Что это

Пользовательские события — инструмент, который следит за метриками вашего ресурса. Если метрика вышла за указанный порог, система фиксирует событие.

Пример. Для ресурса example.ru вы задали условие: порог ошибок 503 от сервера-источника — 10 в секунду. Ошибок стало больше, и система записала начало события. Позже частота снизилась до 10 в секунду — система записала окончание. Так вы узнаете, когда и как долго сервер был недоступен.

Когда пригодятся

Например, инструмент поможет отследить:

  • резкий рост или падение входящего трафика;

  • рост запросов от ботов;

  • увеличение времени ответа вашего сервера-источника;

  • всплеск ошибок 5xx на сервере-источнике;

  • любые другие изменения метрик.

Как работают

  1. Вы создаёте триггер — правило для мониторинга трафика. В нём указываете ресурс, метрику и её пороговое значение.

  2. Система следит за метрикой и сравнивает её значение с порогом.

  3. Как только метрика выходит за заданный порог, система фиксирует начало события.

  4. Как только метрика приходит в норму, система фиксирует окончание события.

Каждый такой случай записывается в журнал событий. Там видно, когда событие началось, когда закончилось и на каком значении сработал триггер.

Если настроили уведомления, система пришлёт вам сообщение при начале события и ещё одно — при завершении.

Где находятся пользовательские события в UI

Перейдите в раздел Защита приложений → Пользовательские события. Здесь вы увидите две вкладки:

  • События — журнал всех событий, которые зафиксировала система. Используйте его, чтобы посмотреть, какие отклонения метрик были на ваших ресурсах, когда они начались и когда завершились.

  • Триггеры — список всех созданных вами триггеров. Здесь вы можете создать новый триггер или управлять настройками существующих.

Как работать с каждой вкладкой — в разделах ниже.

Переход к пользовательским событиям

Триггеры

Как создать

  1. На вкладке Триггеры нажмите + Создать триггер. Откроется окно для добавления триггера, все дальнейшие шаги выполняйте в нём.

  2. Выберите Ресурс, метрику которого нужно отслеживать.

  3. Выберите Тип метрики — группу показателей, за которыми хотите следить. Например: Коды ответа ориджина.

  4. Выберите Метрику — конкретный показатель, который будет отслеживать триггер. Например: можно выбрать метрику 2xx, 3xx, 4xx или 5xx.

    Полный список метрик и их описание вы найдёте ниже. Кликните на заголовок, чтобы раскрыть его.

    Описание метрик
    Тип метрики Описание и доступные варианты

    Пропускная способность

    Объём разных видов трафика.

    Доступные метрики:

    • Blocked — трафик, который был заблокирован в ходе фильтрации.

    • Passed — трафик, который прошёл фильтрацию и был передан на ваши серверы-источники.

    • Inbound — весь входящий трафик, который получила система защиты.

    • Outbound — исходящий трафик от ваших серверов-источников к клиентам.

    Действия с запросами

    Число запросов, которые система защиты обработала по разным сценариям.

    Доступные метрики:

    • Blocked — запросы, заблокированные по политикам фильтрации.

    • Cookie Challenge — запросы, в ответ на которые система защиты выдала клиенту cookie-челлендж.

    • JS Challenge — запросы, в ответ на которые система защиты выдала клиенту JS-челлендж.

    • CAPTCHA Challenge — запросы, в ответ на которые система защиты выдала клиенту CAPTCHA.

    • Passed — запросы, переданные на серверы-источники.

    • Redirected (301) — запросы, в ответ на которые система защиты вернула HTTP-код 301, например, для перенаправления с HTTP на HTTPS.

    • Bad Request (400) — запросы, в ответ на которые система защиты вернула HTTP-код 400 из-за некорректного формата запроса или нарушения протокола.

    CAPTCHA-челлендж статистика

    Число запросов, связанных с прохождением CAPTCHA.

    Доступные метрики:

    • Allowed — запросы от клиентов, которые уже недавно правильно решили капчу (такие запросы пропускаются к вашим серверам-источникам);

    • Issued — запросы, в ответ на которые клиенту была выдана CAPTCHA;

    • Solved — запросы, в ответ на которые клиенту была выдана CAPTCHA, и клиент её правильно решил.

    Коды ответа платформы

    Число запросов, в ответ на которые система защиты вернула HTTP-код конкретного типа.

    Доступные метрики:

    • 2xx — ответы с кодами 2xx (успешно).

    • 3xx — ответы с кодами 3xx (редирект).

    • 4xx — ответы с кодами 4xx (ошибка клиента).

    • 5xx — ответы с кодами 5xx (ошибка сервера).

    Время обработки запросов

    Число запросов, сгруппированных по общему времени обработки — от момента, когда система защиты получила запрос, до момента, когда она отправила ответ клиенту.

    Доступные метрики:

    • > 10 sec

    • 3-10 sec

    • 1-3 sec

    • 0.3-1 sec

    • < 0.3 sec

    Время ответа ориджина

    Число запросов, сгруппированных по времени ответа сервера-источника — от момента, когда система защиты отправила запрос на сервер-источник, до момента, когда она получила ответ.

    Доступные метрики:

    • > 10 sec

    • 3-10 sec

    • 1-3 sec

    • 0.3-1 sec

    • < 0.3 sec

    Классификация запросов

    Число запросов от разных типов клиентов.

    Доступные метрики:

    • Blacklisted — запросы от клиентов из чёрного списка.

    • Bot — запросы от ботов.

    • Likely Bot — запросы, которые система с высокой вероятностью определила как бот-трафик.

    • Likely Human — запросы, которые система с высокой вероятностью определила как трафик от человека.

    • Human — запросы от людей.

    • Verified Bot — запросы от верифицированных ботов, например, поисковых систем.

    • Whitelisted — запросы от клиентов из белого списка.

    5xx ошибки ориджина

    Число запросов, в ответ на которые сервер-источник вернул конкретную ошибку 5xx.

    Доступные метрики:

    • 500 — непредвиденная ошибка на стороне сервера.

    • 501 — метод запроса не поддерживается сервером и не может быть обработан.

    • 502 — сервер вернул некорректный ответ.

    • 503 — сервер временно недоступен, например из-за перегрузки или технического обслуживания.

    • 504 — сервер не успел получить ответ от внутреннего сервиса за отведённое время.

    Коды ответа ориджина

    Число запросов по HTTP-кодам, которые вернул сервер-источник.

    Доступные метрики:

    • 2xx — ответы с кодами 2xx (успешно).

    • 3xx — ответы с кодами 3xx (редирект).

    • 4xx — ответы с кодами 4xx (ошибка клиента).

    • 5xx — ответы с кодами 5xx (ошибка сервера).

  5. Выберите Единицу измерения, в которой система будет считать значение метрики. Например:

    • Kbit/s — килобиты в секунду;

    • Mbit/s — мегабиты в секунду;

    • rpm — запросы в минуту;

    • rps — запросы в секунду.

    В зависимости от метрики набор единиц измерения может отличаться.

  6. Выберите Условие, при котором система должна зафиксировать событие: more than (больше чем) или less than (меньше чем).

    Система сравнивает текущее значение метрики с заданным порогом и фиксирует событие, когда выбранное условие выполняется.

    Пример: вы выбрали more than и указали значение 100. Система зафиксирует событие, когда значение метрики станет 101 и выше.

  7. Укажите Порог — число, с которым система будет сравнивать текущее значение метрики. При превышении порога зафиксирует начало события.

    Это должно быть целое число больше нуля: без дробной части, букв, пробелов и специальных символов.

  8. Нажмите Создать. Триггер появится в списке и начнёт отслеживать выбранную метрику.

    Также автоматически откроется окно Расписание триггера, где вы можете задать дополнительную настройку: изменение порога в зависимости от дня недели и времени. Подробнее читайте ниже.

    Настройки расписания

Расписание триггера

Расписание — инструмент, который меняет порог триггера в зависимости от дня недели и времени. Например, если задать:

  • порог триггера — 100 запросов в секунду;

  • расписание: пн-пт с 09:00 до 18:00 порог — 500 запросов в секунду.

То с понедельника по пятницу с 09:00 до 18:00 порог будет 500 запросов в секунду, а всё остальное время — 100 запросов.

Инструмент пригодится, если нагрузка на ваш ресурс неравномерна: например, в рабочее время трафика много, а в остальное мало. С помощью расписания вы сделаете значение порога динамическим и будете получать события только при реальных аномалиях метрик.

Если для триггера настроено хотя бы одно правило расписания, в его строке на вкладке Триггеры вы увидите значок часов.

Пример триггера с расписанием

Чтобы добавить расписание к уже созданному триггеру:

  1. На вкладке Триггеры нажмите на многоточие (…) рядом с нужным триггером и выберите Настроить расписание.

    Переход к настройкам расписания
  2. В открывшемся окне нажмите + Добавить правило. Откроются настройки правила расписания, дальнейшие шаги выполняйте там.

  3. Выберите Дни, в которые должно действовать правило. Можно выбрать один или несколько дней.

  4. Укажите время начала и окончания действия правила.

    Время задаётся в часовом поясе операционной системы вашего устройства.

    Если правило должно действовать до следующего дня, выберите только день, когда оно начинается. Например, для периода с 22:00 понедельника до 02:00 вторника выберите Пн и задайте время 22:00–02:00. Вторник выбирать не нужно.

    Для одного триггера нельзя создать несколько правил, которые полностью или частично пересекаются по времени. Например, если на понедельник уже настроено правило 09:00–14:00, добавить правило 12:00–18:00 не получится, потому что их интервалы пересекаются с 12:00 до 14:00.

  5. Задайте Порог, который будет действовать в выбранные дни и время. Условие и единица измерения остаются такими же, как у основного порога триггера.

  6. Кликните в любом месте за пределами поля. Система сохранит правило автоматически — рядом с ним появится ID.

    После создания правила можно изменить только его порог. Чтобы изменить дни или время, удалите правило с помощью значка корзины и создайте новое.

    Пример правила

Рекомендации по настройке

  • Начните с метрик, изменения которых действительно важны для вашего ресурса. Не создавайте триггеры на все показатели сразу: чем меньше триггеров, тем понятнее, что означает каждое срабатывание. Например, если для вас критична доступность сайта, начните с типа 5xx ошибки ориджина.

  • Перед созданием триггера посмотрите, какие значения метрика принимает при обычной нагрузке. Для этого используйте разделы Обзор (дашборд), Аналитика и Статистика по трафику. Так вам будет проще выбрать подходящий порог.

  • Не ставьте порог слишком близко к обычным значениям. Иначе триггер будет срабатывать на обычных колебаниях, а в журнале появится много однотипных событий.

  • Если нагрузка на ресурс меняется в зависимости от времени суток или дня недели, используйте основной порог для обычного режима работы, а для периодов с повышенной или пониженной нагрузкой — расписание триггера.

  • Периодически сверяйте порог со свежей статистикой. Обычные значения метрик со временем меняются, поэтому старые настройки могут перестать подходить. Если триггер перестал срабатывать или, наоборот, срабатывает постоянно — скорректируйте значение.

Как управлять

На вкладке Триггеры вы увидите список всех созданных триггеров. Управлять ими можно прямо из списка:

  • Включить/выключить: используйте переключатель в столбце Статус. Зелёный цвет значит, что триггер включён и система фиксирует по нему события, серый — что он выключен.

  • Редактировать: в строке нужного триггера выберите другую единицу измерения или введите новое значение в поле Порог. Нажмите вне поля, чтобы сохранить изменения.

  • Настроить расписание: нажмите на многоточие (…) в конце строки и выберите Настроить расписание. В открывшемся окне вы сможете создать новое правило с отдельным порогом для выбранных дней и времени или изменить порог существующего правила.

  • Удалить: нажмите на многоточие (…), выберите Удалить триггер и подтвердите удаление. Вместе с триггером удалятся все его правила расписания.

Список триггеров

События

Здесь вы найдёте журнал всех событий, зафиксированных при срабатывании триггеров. По нему видно, какие метрики и как часто выходят за заданные границы и сколько времени держится отклонение. По каждому событию в таблице указаны:

  • идентификатор события;

  • дата и время начала события;

  • дата и время окончания события;

  • ресурс, для которого зафиксировано событие;

  • тип отслеживаемой метрики;

  • показатель, по которому сработал триггер;

  • пороговое значение, заданное в триггере;

  • пиковое значение метрики за время события.

Список событий

Кликните иконку графика в строке события, чтобы посмотреть, как менялось значение метрики во время события. График доступен в двух шкалах: линейной и логарифмической. Логарифмическая помогает разглядеть детали, когда значения метрик различаются в десятки и сотни раз.

Если событие идёт в реальном времени (статус Не завершено), график по нему будет сформирован после его завершения.

График события

По умолчанию в журнале отображаются события по всем ресурсам и типам метрик за последние 30 дней. Эти настройки можно изменить:

  • Период. Нажмите Последние 30 дней и выберите нужный диапазон или задайте свой.

  • Фильтры по ресурсам и типам метрик. Нажмите Все ресурсы или Все типы метрик и выберите из списка нужный вариант. Откроется список событий, соответствующий вашим фильтрам.

  • Автообновление. Кликните 🔄 и установите частоту автообновления данных: выключена, 10/30 секунд, 1/5/15/30 минут или 1 час.

Настройки журнала событий

Уведомления о пользовательских событиях

Включите уведомления, чтобы получать сообщения о событиях: первое придёт, когда система зафиксирует отклонение метрики, второе — когда метрика вернётся в норму.

  1. Откройте настройки аккаунта.

  2. Перейдите на вкладку Подписка на уведомления.

  3. В подписке укажите получателей и способ доставки: имейл, Telegram или Webhook.

  4. (Опционально) по умолчанию вы будете получать уведомления по всем триггерам. Если интересуют только конкретные триггеры, укажите их ID — уведомления будут приходить только по ним.

ID триггеров можно найти в списке на вкладке Триггеры.

Подробная инструкция по настройке — в статье Подписки на уведомления.