Files
pd-guard/compose.yaml
T

66 lines
3.0 KiB
YAML
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.
# Один узел, состояние маскирования/демаскирования — в памяти самого процесса
# (pdguard.store.backend=memory, дефолт). Redis был нужен только чтобы разделить
# состояние между несколькими репликами; кластерная схема на 4-vCPU хосте под
# нагрузкой давала конкуренцию за CPU (см. историю в git) — один узел проще и
# получает весь хост целиком.
services:
pd-guard:
image: pd-guard-spring:jvm
ports:
- "8080:8080"
deploy:
resources:
limits:
cpus: "4"
memory: 6g
environment:
# Дефолт JVM — 25% контейнерного лимита на heap.
JAVA_OPTS: >-
-Dspring.config.additional-location=optional:file:/deployments/config/
-XX:MaxRAMPercentage=75.0
PDGUARD_MAX_CONCURRENT: "2000"
# На 1 vCPU дефолт 200мс держал concurrency у пола; на 4 vCPU запас есть,
# но 800мс оставлено с той же осторожностью — целевая latency контракта 1с.
PDGUARD_TARGET_LATENCY_MS: "800"
PDGUARD_WARMUP_ITERATIONS: "2000"
# Вторая ступень распознавания — две модели под разные задачи (см.
# NameCascade.java): WikiNEuRal размечает имена, ruBERT — составляющие
# адреса. Модели в репозиторий не входят: ./tools/fetch-ner-model.sh.
PDGUARD_NER_NAME_ENGINE: wikineural
PDGUARD_NER_NAME_MODEL: /deployments/models/wikineural-ner
PDGUARD_NER_ADDRESS_ENGINE: rubert
PDGUARD_NER_ADDRESS_MODEL: /deployments/models/rubert-ner
# Третья ступень (юридические реквизиты, LLAIM Legal NER) временно выключена
# для нагрузочного теста — проверяем, она ли основной источник CPU-затрат
# на 1-vCPU лимите. Включить: PDGUARD_NER_LEGAL_ENGINE=ru-legal-ner.
PDGUARD_NER_LEGAL_ENGINE: "off"
volumes:
- ./config:/deployments/config:ro
- ./models:/deployments/models:ro
healthcheck:
test: ["CMD", "curl", "-fsS", "http://localhost:8080/health"]
interval: 10s
timeout: 2s
retries: 3
prometheus:
image: prom/prometheus:v2.55.1
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
ports:
- "9090:9090"
grafana:
image: grafana/grafana:11.3.0
depends_on:
- prometheus
ports:
- "3000:3000"
environment:
GF_AUTH_ANONYMOUS_ENABLED: "true"
GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
volumes:
- ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
- ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro