Единый мониторинг: бизнес-метрики + вынос Prometheus/Loki/Grafana на VPS с данными
Prometheus/Loki/Grafana больше не живут внутри backend-стека — единый
стек теперь на VPS с данными (netrunner-data), т.к. ему нужно видеть
ещё лендинг и все прокси-ноды, не только бэкенд. Отсюда только тонкий
promtail, пушащий логи по сети (LOKI_PUSH_URL).
Новые бизнес-метрики поверх уже существующих generic HTTP-метрик:
payments_total{provider,status}, nodes_online/nodes_total,
support_tickets_total{status}, referral_signups_total,
partner_commission_total{currency} — тем же макросом metrics::counter!/
gauge!, что уже был в api.rs/error.rs.
Новый гейт-эндпоинт GET /api/v1/admin/observability/check (только
Owner/Moderator) — для Caddy forward_auth перед Grafana (см.
netrunner-data/observability/Caddyfile), встройка в админку через
GRAFANA_PUBLIC_URL в GET /api/v1/config.
templates/init_node.sh — добавляет --metrics-port 9093 в провижининг
новых прокси-нод.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+12
-48
@@ -62,67 +62,31 @@ services:
|
||||
- netrunner_grid
|
||||
|
||||
# ==========================================
|
||||
# МОНИТОРИНГ
|
||||
# НАБЛЮДАЕМОСТЬ
|
||||
# ==========================================
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
container_name: netrunner-prometheus
|
||||
volumes:
|
||||
- ./prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||||
ports:
|
||||
- "127.0.0.1:9090:9090"
|
||||
restart: always
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
loki:
|
||||
image: grafana/loki:latest
|
||||
container_name: netrunner-loki
|
||||
volumes:
|
||||
- ./loki-config.yml:/etc/loki/local-config.yaml:ro
|
||||
ports:
|
||||
- "127.0.0.1:3100:3100"
|
||||
command: -config.file=/etc/loki/local-config.yaml
|
||||
restart: always
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
# Prometheus/Loki/Grafana больше НЕ здесь — единый стек теперь на VPS с
|
||||
# данными (netrunner-data/docker-compose.observability.yml), т.к. ему
|
||||
# всё равно нужно видеть лендинг и все прокси-ноды, не только бэкенд.
|
||||
# /metrics бэкенда (см. src/api.rs) — тот central Prometheus скрейпит
|
||||
# удалённо; отсюда только пуш логов через тонкий promtail.
|
||||
promtail:
|
||||
image: grafana/promtail:latest
|
||||
container_name: netrunner-promtail
|
||||
environment:
|
||||
- LOKI_PUSH_URL=${LOKI_PUSH_URL}
|
||||
volumes:
|
||||
- ./promtail-config.yml:/etc/promtail/config.yml:ro
|
||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
command: -config.file=/etc/promtail/config.yml
|
||||
# -config.expand-env: без него promtail не подставит ${LOKI_PUSH_URL}
|
||||
# внутри самого config.yml — сама переменная передаётся выше через
|
||||
# environment, файл конфига читает её только с этим флагом.
|
||||
command: -config.file=/etc/promtail/config.yml -config.expand-env=true
|
||||
restart: always
|
||||
user: root
|
||||
depends_on:
|
||||
- loki
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:latest
|
||||
container_name: netrunner-grafana
|
||||
ports:
|
||||
- "127.0.0.1:3030:3000"
|
||||
environment:
|
||||
- GF_SECURITY_ADMIN_USER=admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
|
||||
volumes:
|
||||
- grafana_data:/var/lib/grafana
|
||||
- ./grafana-datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml:ro
|
||||
depends_on:
|
||||
- prometheus
|
||||
- loki
|
||||
restart: always
|
||||
networks:
|
||||
- netrunner_grid
|
||||
|
||||
networks:
|
||||
netrunner_grid:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
grafana_data:
|
||||
|
||||
Reference in New Issue
Block a user