Files
EvoBGP/docs/docker-resources.md
T
DenozordecandCursor 240d83fc61 docs(docs): describe durable jobs, telemetry, and bundle limits
Зафиксированы очередь job, семантика метрик, лимиты бандла и исходящих запросов, а также чеклист продакшена для пула соединений.

Co-authored-by: Cursor <[email protected]>
2026-11-02 17:24:18 +07:00

18 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Ресурсы и данные Docker
Этот файл сопровождает профили в `deploy/compose/`. Текущие значения `deploy.resources.limits` — верхние границы, а не измеренное потребление. Сумма лимитов `microvps-full` с edge и без NATS — 984M. Её нельзя считать подтверждением пригодности для VPS с 1 ГиБ RAM: нужны измерения ОС, Docker, BIRD и пиков refresh/apply. Лимиты BIRD и agent до таких измерений не снижены.
## Дополнительный NATS
Во всех основных Compose-вариантах NATS запускается только через `--profile nats` (или `COMPOSE_PROFILES=nats` для standalone stack). В коде `EVOBGP_BROKER_URL` только записывается в лог: внутренняя очередь не использует NATS. Перед отключением NATS на существующем хосте проверьте внешних клиентов порта 4222. Профиль не удаляет данные NATS и не меняет BIRD, WireGuard, agent или их тома.
## Данные Prometheus
Prometheus монтирует named volume `prometheus_data` в `/prometheus`. Retention по времени: 7 дней для `microvps-full`/standalone и 15 дней для `reference`; дополнительный предел по размеру задаёт `EVOBGP_PROMETHEUS_RETENTION_SIZE` (по умолчанию `2GB`). Это предел данных TSDB, а не строгий предел диска процесса: WAL и head block требуют отдельного запаса. Для самого маленького хоста сначала измерьте прирост диска и число серий, затем установите размер под доступную ёмкость.
**Обновление существующего стека:** прежний образ Prometheus мог хранить историю в анонимном Docker volume. Простое пересоздание контейнера с новым named volume покажет пустую историю. До `up` найдите текущий mount через `docker inspect <prometheus-container>`: у записи с `Destination=/prometheus` сохраните `Name`/`Source` и сделайте резервную копию. Для файлового копирования сначала остановите Prometheus либо используйте его поддерживаемый snapshot API. Перенесите содержимое старого тома в новый том с сохранением прав владельца; фактическое имя нового тома содержит префикс Compose project (проверьте через `docker volume ls` и `docker inspect`). Можно осознанно начать новую историю после проверки бэкапа. Проверьте запросы Prometheus до и после recreate. Не запускайте `docker compose down -v`: это удаляет также PostgreSQL, BIRD и другие тома проекта. В production перенос выполняйте отдельно от обновления BIRD/agent.
## Проверка эффекта
На одном оборудовании и одинаковом наборе маршрутов сравните `docker compose config`, `docker inspect` (фактические лимиты и mount), `docker stats`, `docker system df -v`, размер логов за сутки, cold/warm build и pull. После изменения проверьте отсутствие OOM/restarts и BGP flaps, совпадение prefix/community, работу apply/rollback и latency API. Локальная среда разработки без Docker не подтверждает экономию RAM или диска.