Files
rpa_vision_v3/docs/fiches/FICHE_24_OBSERVABILITY.md
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

2.0 KiB

FICHE 24 — Observabilité (metrics + request id)

Ce que ça ajoute

  1. /metrics sur l'API FastAPI (server/api_upload.py) — en plus du dashboard qui l'avait déjà.
  2. Métriques HTTP (req/s, statuts, latence, in-flight) y compris pour les requêtes bloquées par la sécu.
  3. Métriques "sécurité" : compteur des blocages (auth_fail, rate_limit, demo_safe, killswitch, ip_block).
  4. Header X-Request-Id sur toutes les réponses (pratique pour corréler logs ↔ requêtes ↔ incidents).

Endpoints utiles

  • Dashboard (Flask):

    • GET /metrics (déjà présent)
    • GET /health / GET /api/status (selon ta config)
  • API Upload (FastAPI):

    • GET /healthz
    • GET /metrics (nouveau)
    • GET /api/traces/status

Nouvelles métriques

  • http_requests_total{service,method,path,status}
  • http_request_duration_seconds{service,method,path}
  • http_requests_in_flight{service}
  • rpa_security_blocks_total{service,reason}

Labels

  • service vient de RPA_SERVICE_NAME (en prod: posé par les unités systemd).
  • path utilise le template de route quand disponible (évite la cardinalité).

Test rapide (sans Prometheus)

1) Vérifier l'API

curl -s http://127.0.0.1:8000/metrics | head
curl -i http://127.0.0.1:8000/api/traces/status | head

Tu dois voir X-Request-Id: dans la réponse.

2) Provoquer un blocage et voir le compteur monter

# Sans token -> 401 (si RPA_AUTH_REQUIRED)
curl -i http://127.0.0.1:8000/api/traces/sessions | head

# Re-scrape metrics
curl -s http://127.0.0.1:8000/metrics | grep -E "rpa_security_blocks_total|http_requests_total" | head

Prometheus (optionnel)

Un exemple de config (si tu veux monter un Prometheus plus tard) :

  • deploy/prometheus/prometheus.yml (si tu l'ajoutes) qui scrape :
    • 127.0.0.1:8000/metrics (API)
    • 127.0.0.1:5001/metrics (Dashboard)

Bonus

Ce patch corrige aussi un bug de syntaxe Python dans core/healing/strategies/format_transformation.py (f-string + regex) qui empêchait un py_compile complet.