CI / ruff · mypy · pytest (pull_request) Successful in 26m33s
- README: цели и задачи, что реализовано, развёртывание (локально за 5 минут и полный стек), переменные, команды и данные, используемые API, ограничения и лимиты, что не сделано, структура репозитория - examples/: hello (healthy + материал для grep/агента), crash (💥 и 🔁), cpu_hog (🔥), unhealthy (🩺), syntax_error/lint_fail для коммита, вопросы агенту и атаки; make demo-up / demo-down в том же Compose-проекте - make local-proxy: read-only Docker API для `make run` - ARCHITECTURE: краш при restart-политике и гистерезис алертов Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
20 lines
577 B
Python
20 lines
577 B
Python
"""Crashing demo service: works for ~30 s, then dies with a traceback and exit code 1.
|
|
|
|
With `restart: on-failure` Docker brings it back, so it also turns into 🔁 «цикл рестартов».
|
|
Expected alerts: 💥 краш (exit 1), then 🔁 after 3 restarts within 10 minutes.
|
|
"""
|
|
|
|
import sys
|
|
import time
|
|
|
|
print("crash demo: starting, will fail in 30 s", flush=True)
|
|
time.sleep(30)
|
|
try:
|
|
{}["db_url"]
|
|
except KeyError:
|
|
import traceback
|
|
|
|
traceback.print_exc()
|
|
print("ERROR fatal: config key db_url is missing", file=sys.stderr, flush=True)
|
|
sys.exit(1)
|