Норма по часам или фиксированный порог
Большинство алертов на контракт начинаются с фиксированного числа: «алерт, если больше 500 переводов в час». Число выбирают один раз, на глаз, и дальше оно вводит в заблуждение в обе стороны.
- В часы пик оно шумит. Обычный дневной трафик его пересекает, команда привыкает к алерту и отключает его.
- Ночью оно молчит. В 3 часа ночи контракт обычно делает 40 переводов в час. Всплеск до 400 — это десять норм, и всё равно ниже 500.
То же с падением. Порог, достаточно низкий, чтобы поймать мёртвый контракт в полдень, срабатывает каждую ночь на обычной тишине.
Что такое норма по часам
Норма по часам сравнивает каждый час с тем же часом в предыдущих днях. SmartAlert берёт значения метрики за этот час в предыдущие дни и использует их медиану как норму. Ещё он берёт типичное отклонение: медианное расстояние этих значений от нормы. Правило срабатывает, когда текущий час дальше от нормы, чем заданное число типичных отклонений.
Медианы, а не средние, выбраны намеренно: один прошлый инцидент или один день airdrop не сдвигают норму.
| Фиксированный порог | Норма по часам | |
|---|---|---|
| Что вы задаёте | Число | Направление и чувствительность |
| Учитывает время суток | Нет | Да |
| Учитывает рост за месяцы | Нет, устаревает | Да, пересчитывается при каждой проверке |
| Нужна история | Нет | Около 5 дней |
| Лучше всего для | Событий, которых не должно быть никогда, и сумм | Счётчиков и объёмов, которые растут и падают в течение дня |
- Фиксированный порог
- Число
- Норма по часам
- Направление и чувствительность
- Фиксированный порог
- Нет
- Норма по часам
- Да
- Фиксированный порог
- Нет, устаревает
- Норма по часам
- Да, пересчитывается при каждой проверке
- Фиксированный порог
- Нет
- Норма по часам
- Около 5 дней
- Фиксированный порог
- Событий, которых не должно быть никогда, и сумм
- Норма по часам
- Счётчиков и объёмов, которые растут и падают в течение дня
Настройки
Сравнивать с
тем же часом в предыдущих днях; тем же часом и днём недели, для контрактов с недельным ритмом; или с предыдущим таким же периодом.
Срабатывать, когда значение
выше нормы, ниже нормы или в любую сторону. «Ниже» ловит контракт, который затих: сломанный фронтенд, застрявший keeper, приостановленный мост.
Чувствительность
высокая, средняя (по умолчанию) или низкая.
Свой лимит для отдельного часа
Нажмите на час на графике и задайте для него более строгий или более мягкий лимит. Остальные часы следуют норме.
Пока истории не хватает, приложение пишет «Норма недоступна» и показывает дату, когда она появится. Пустое место оно никогда не заполняет выдуманным числом. У контракта, которому уже несколько недель, история есть: SmartAlert собирает её, когда вы добавляете адрес.
Проверьте на истории до включения
Норма, которую не видно, — чёрный ящик. Перед включением правила SmartAlert рисует последние 30 дней: метрику, коридор нормы и отметку в каждой точке, где правило сработало бы. Если на прошлой неделе оно сработало бы двенадцать раз на обычном трафике, вы увидите это сейчас, а не ночью.
Можно также задать цель: «не больше 2 срабатываний в неделю». SmartAlert найдёт чувствительность, которая её выполняет на истории, и покажет результат на том же графике.
Когда фиксированный порог — правильный выбор
Норма не всегда лучше.
События, которых не должно быть никогда
владелец сменился, прокси обновлён, роль выдана, владельцы Safe изменились. Любое единичное событие — это алерт. Используйте «любое событие».
Суммы в долларах
перевод больше $50 000, казна ниже $100 000. Лимит берётся из вашего бизнеса, а не из истории.
Совсем новые контракты
, у которых ещё нет истории. Начните с фиксированного порога и переключитесь, когда появится норма.
Редкая, нерегулярная активность
, например governance-контракт с несколькими вызовами в неделю. Суточного ритма, который можно выучить, нет.
Хорошая настройка использует оба подхода: фиксированные правила для админских событий и сумм, норма по часам для счётчиков и объёмов активности.
Типичные правила на норме
- Всплеск переводов: переводов в час намного выше нормы для этого часа.
- Всплеск обменов: обменов в DEX-пуле намного выше нормы.
- Контракт замолчал: активность намного ниже нормы.
Вопросы и ответы
Сколько истории нужно для нормы?
Около 5 дней для «того же часа в предыдущих днях». Контракт старше этого срока работает сразу, потому что SmartAlert читает его прошлые события при добавлении.
Не «научит» ли атака норму считать её обычной?
Один необычный час почти не двигает медиану. Устойчивое изменение за много дней станет новой нормой, поэтому алерт срабатывает в начале изменения, а не в конце.
Можно ли использовать норму на тарифе Free?
Да, со сравнением «тот же час в предыдущих днях». Часть вариантов сравнения помечена в форме как Pro.
Попробуйте на своём контракте
Достаточно адреса. Первые 14 дней действуют лимиты Pro, а правила проверяются на истории до включения.