414667062c
Отдельный от db+vaultwarden compose-файл (разный жизненный цикл, свой deploy-workflow) — единственное место сбора для backend, лендинга и каждой прокси-ноды, которые физически живут на других серверах. Prometheus скрейпит наружу (сам ходит в /metrics на тех хостах — там нужно только открыть порт метрик для IP этого VPS). Loki, наоборот, принимает пуши логов ИЗВНЕ — порт 3100 публикуется наружу и обязательно фильтруется firewall'ом по IP тех хостов. Grafana не торчит в интернет напрямую (127.0.0.1-only) — единственный вход через Caddy с forward_auth, гейтящим по cookie-сессии netrunner-backend (GET /api/v1/admin/observability/check, Owner/Moderator). 3 provisioned дашборда (backend/landing/прокси-ноды). Список scrape-таргетов для прокси-нод (observability/targets/nodes.json) генерится и заливается автоматически из netrunner-proxy при каждом деплое нод — вручную ничего не поддерживается. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
42 lines
2.2 KiB
YAML
42 lines
2.2 KiB
YAML
# Скрейп-конфиг центрального Prometheus (стоит на этом же VPS, рядом с
|
|
# Postgres/Vaultwarden — см. docker-compose.observability.yml).
|
|
#
|
|
# Прокси-ноды (netrunner-proxy-nodes) — уже реальный динамический список:
|
|
# targets/nodes.json генерится и заливается сюда автоматически при каждом
|
|
# деплое нод (netrunner-proxy/scripts/generate-prometheus-targets.mjs,
|
|
# .gitea/workflows/deploy.yml::update-observability-targets).
|
|
#
|
|
# backend/landing уже инструментированы (/metrics — см. src/api.rs в
|
|
# netrunner-backend, app/api/metrics/route.ts + proxy-ws/src/main.rs в
|
|
# netrunner-landing) — таргеты ниже закомментированы только потому, что
|
|
# backend ещё не арендован (нет реального хоста), а для landing нужно
|
|
# подставить актуальный IP её VPS. Раскомментировать и подставить реальные
|
|
# значения, как только они известны — рестарт контейнера НЕ нужен для
|
|
# file_sd_configs, но ДЛЯ static_configs (эти два таргета) правки в
|
|
# prometheus.yml требуют `docker compose restart prometheus` на этом VPS.
|
|
global:
|
|
scrape_interval: 15s
|
|
|
|
scrape_configs:
|
|
- job_name: "prometheus"
|
|
static_configs:
|
|
- targets: ["localhost:9090"]
|
|
|
|
# Прокси-ноды: динамический список, file_sd_configs перечитывается
|
|
# автоматически при изменении файла, рестарт Prometheus не нужен.
|
|
- job_name: "netrunner-proxy-nodes"
|
|
file_sd_configs:
|
|
- files:
|
|
- "/etc/prometheus/targets/nodes.json"
|
|
refresh_interval: 30s
|
|
|
|
# - job_name: "netrunner-backend"
|
|
# static_configs:
|
|
# - targets: ["CHANGE_ME_BACKEND_HOST:8080"]
|
|
# - job_name: "netrunner-landing"
|
|
# static_configs:
|
|
# - targets: ["CHANGE_ME_LANDING_HOST:3000"] # Next.js /api/metrics
|
|
# - job_name: "netrunner-landing-ws-proxy"
|
|
# static_configs:
|
|
# - targets: ["CHANGE_ME_LANDING_HOST:3001"] # proxy-ws /metrics
|