CI / ruff · mypy · pytest (pull_request) Successful in 24m47s
Найдено смоуком на живых контейнерах (examples/, #19): - контейнер с restart: on-failure поднимается за секунду — между раундами его не видно в exited; краш теперь распознаётся и по росту RestartCount (сравнение со снапшотами до текущего раунда), повторы — счётчик - алерт закрывается, только когда условия нет resolve_after (60 с): иначе флапающий сервис получал бы «✅ восстановлено» после каждого раунда - правки сообщений со счётчиком — не чаще раза в минуту на алерт Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
1.3 KiB
YAML
21 lines
1.3 KiB
YAML
# Пороги алертов (SPEC AL-2, AL-5). Читает app/alerts/detectors.py; неизвестный ключ — ошибка при старте.
|
|
|
|
# 🔁 цикл рестартов: столько рестартов за окно, секунды
|
|
restart_loop_count: 3
|
|
restart_loop_window: 600
|
|
# 🔥 перегрузка: CPU выше (% ядра × число ядер) или RAM выше (% лимита) дольше, чем overload_for секунд
|
|
overload_cpu_pct: 80
|
|
overload_mem_pct: 90
|
|
overload_for: 60
|
|
# 💾 мало места: свободно меньше, %, на разделе с этим путём (том бота лежит на диске хоста)
|
|
disk_low_pct: 10
|
|
disk_path: /data
|
|
# 🔌 зависимость недоступна дольше, секунды (Docker API)
|
|
dependency_down_for: 300
|
|
# Повтор того же алерта (тип + сервис) в этом окне, секунды, — счётчик в исходном сообщении, а не новое (AL-5)
|
|
repeat_window: 600
|
|
# Закрывать алерт («✅ восстановлено»), когда условия нет уже столько секунд, — не после одного удачного раунда
|
|
resolve_after: 60
|
|
# Строк лога в сообщении алерта (AL-3)
|
|
log_tail: 30
|