feat(obs): наблюдаемость Prometheus + Grafana под профилем observability
Раньше видимости в прод не было — только email-монитор (костыль). Добавлено без нагрузки по умолчанию (профиль не поднимается, пока не попросят): - API: /metrics через prometheus-fastapi-instrumentator (кол-во/латентность запросов по хендлерам); - Prometheus (infra/prometheus/prometheus.yml) скрейпит API и Flower — из Flower приходят метрики Celery (задачи, время, воркеры) вообще без доп. кода; - Grafana с автопровижном источника Prometheus (infra/grafana/provisioning), пароль через GRAFANA_ADMIN_PASSWORD; - docker-compose.prod.yml: сервисы prometheus/grafana под profiles:[observability] + volumes; .env.example и README пополнены. Запуск: docker compose --profile observability up -d prometheus grafana. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,8 @@ volumes:
|
||||
es_prod_data:
|
||||
faiss_index_prod:
|
||||
qdrant_prod_data:
|
||||
prometheus_data:
|
||||
grafana_data:
|
||||
|
||||
x-app-env: &app-env
|
||||
env_file: .env
|
||||
@@ -65,6 +67,36 @@ services:
|
||||
- antiplagiator
|
||||
restart: unless-stopped
|
||||
|
||||
# ─── Наблюдаемость (опционально; профиль observability) ────────────────────
|
||||
# docker compose -f docker-compose.prod.yml --profile observability up -d prometheus grafana
|
||||
# Prometheus скрейпит api:/metrics и flower:/metrics (метрики Celery).
|
||||
prometheus:
|
||||
image: prom/prometheus:v2.54.1
|
||||
container_name: antiplagiator-prometheus
|
||||
profiles: ["observability"]
|
||||
volumes:
|
||||
- ./infra/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||||
- prometheus_data:/prometheus
|
||||
networks:
|
||||
- antiplagiator
|
||||
restart: unless-stopped
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:11.2.0
|
||||
container_name: antiplagiator-grafana
|
||||
profiles: ["observability"]
|
||||
environment:
|
||||
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD:-admin}
|
||||
- GF_USERS_ALLOW_SIGN_UP=false
|
||||
volumes:
|
||||
- ./infra/grafana/provisioning:/etc/grafana/provisioning:ro
|
||||
- grafana_data:/var/lib/grafana
|
||||
networks:
|
||||
- antiplagiator
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- prometheus
|
||||
|
||||
# ─── Приложение ────────────────────────────────────────────────────────────
|
||||
# RabbitMQ вынесен на отдельный сервер 192.168.20.82 (см. RABBITMQ_URL в .env)
|
||||
api:
|
||||
|
||||
Reference in New Issue
Block a user