Пороги ресурсов приложений
Оповещения, когда использование CPU, памяти или диска приложением держится выше порога (только для self-hosted).
Пороги ресурсов приложений доступны только в self-hosted режиме.
Skitflow может отслеживать использование CPU, памяти и диска каждым приложением и отправлять уведомление, когда значение держится выше заданного предела слишком долго. Используются те же метрики использования, что и в Swarm Monitoring, поэтому это работает как для сервисов compose-стека, так и для обычных контейнеров.
Настройка
Откройте Dashboard → Monitoring → Alerts и используйте карточку App Resource Thresholds:
- Enable threshold alerts — по умолчанию выключено; пока не включено, для организации не выполняется ни одной проверки.
- CPU / Memory / Disk threshold (%) — значения по умолчанию:
80/80/85. - Sustained checks — количество подряд идущих проверок с превышением
порога, необходимое для срабатывания оповещения (по умолчанию
3). Проверки выполняются раз в 5 минут, поэтому значение по умолчанию соответствует 15-минутному устойчивому превышению. - Cooldown (minutes) — минимальное время между повторными оповещениями для
одного и того же приложения и метрики (по умолчанию
60).
На организацию существует только одна конфигурация — она применяется ко всем
приложениям в ней. Сохранение требует права app_thresholds.update в кастомной
роли (у владельцев/админов организации оно есть всегда); просмотр требует
app_thresholds.read.
Жизненный цикл оповещения
Фоновая задача запускается каждые 5 минут для каждой организации с включёнными оповещениями. Для каждого приложения и каждой из трёх метрик она сравнивает последнее значение использования с настроенным порогом:
- Начало превышения — первый раз, когда метрика превышает порог; уведомление ещё не отправляется.
- Уведомление о превышении отправляется, когда превышение длится
sustainedChecksподряд идущих проверок и с последнего уведомления по этому приложению/метрике прошлоcooldownMinutes. - Пока превышение продолжается, но ещё не набрано нужное окно или не истёк cooldown, новое уведомление не отправляется.
- Восстановление отправляется, как только метрика опускается до порога или ниже, но только если по этому превышению действительно было отправлено уведомление (превышение, которое не продержалось достаточно долго, чтобы уведомить, сбрасывается тихо).
Уведомления доставляются во все настроенные каналы, где включён переключатель App Resource Threshold — см. Notifications. Сбой доставки по одному приложению/метрике логируется и не прерывает обработку и сохранение остальной части тика.
API
Дашборд обращается к этому через две self-hosted-only tRPC-процедуры:
POST /api/trpc/appThreshold.get
POST /api/trpc/appThreshold.updateget не принимает входных данных и при первом обращении лениво создаёт
конфигурацию организации (со значениями по умолчанию выше):
{
"organizationId": "org_123",
"enabled": true,
"cpuPercent": 80,
"memPercent": 80,
"diskPercent": 85,
"sustainedChecks": 3,
"cooldownMinutes": 60
}update принимает частичный патч — любое подмножество полей ниже,
все опциональны:
{
"enabled": true,
"cpuPercent": 90,
"memPercent": 85,
"diskPercent": 90,
"sustainedChecks": 2,
"cooldownMinutes": 30
}cpuPercent / memPercent / diskPercent принимают значения 1–100,
sustainedChecks — 1–60, cooldownMinutes — 0–1440. Каждое
обновление записывается в журнал аудита организации как обновление
app-threshold-config.