|
feat: внешняя доступность сервисов — проба публичного пути и алерты
Публичный URL у сервиса включает второй контур проверки: публичный DNS (1.1.1.1, в обход split-horizon) → ожидаемый GHARD_PUBLIC_IP → TLS с SNI и проверкой сертификата → GET → код. Ловит dns_mismatch/dns_fail/tls_fail/ http_fail/down, которые не видит внутренний health-чек; недоступный резолвер даёт probe_error без алерта. Одно событие service_external_down на инцидент после 5 минут непрерывного отказа и recovered только после реально отправленного down; состояние переживает рестарт. История внешних проб — 7 дней. POST/PATCH и смена публичного URL делают пробу сразу; смена URL чистит историю и состояние. |
|---|
|
|
| docker-compose.yml |
|---|
| panel/backend/.env.example |
|---|
| panel/backend/app/api/services.py |
|---|
| panel/backend/app/config.py |
|---|
| panel/backend/app/db.py |
|---|
| panel/backend/app/events.py |
|---|
| panel/backend/app/external_probe.py 0 → 100644 |
|---|
| panel/backend/app/main.py |
|---|
| panel/backend/app/mcp.py |
|---|
| panel/backend/app/schema.sql |
|---|
| panel/backend/pyproject.toml |
|---|