From 5bf9fa89cf4736da63ff41bcdb252154c1dc94a9 Mon Sep 17 00:00:00 2001 From: Robert Helewka Date: Sat, 23 May 2026 07:05:18 -0400 Subject: [PATCH] feat: add nginx-prometheus-exporter sidecar for web metrics --- docker-compose.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index a8ce3f0..593fc37 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -384,6 +384,26 @@ services: timeout: 5s retries: 3 + # ── Web metrics: nginx-prometheus-exporter ───────────────────────────────── + # Scrapes the `web` container's stub_status endpoint and re-exposes it in + # Prometheus format on 9113. Prospero (Sao) scrapes this; see + # virgo/ansible/pplg/prometheus.yml.j2 → job_name: 'mnemosyne'. + # The Django /metrics endpoint (django-prometheus + custom pipeline metrics + # in mcp_server/metrics.py and library/metrics.py) is reached separately + # via nginx at /metrics — no sidecar needed for that. + web-metrics: + image: nginx/nginx-prometheus-exporter:latest + command: + - --nginx.scrape-uri + - http://web:80/nginx_status + depends_on: + web: + condition: service_started + ports: + - "23191:9113" + restart: unless-stopped + logging: *default-logging + volumes: # Static files written by collectstatic (run by the init sidecar on every # `up`). Docker-managed volume — no host path needed; storage is minimal