Trouve-KA — Observabilité
Author: Simon-Pierre Boucher — Contact: contact@spboucher.ai
En place (MVP)
- Logs structurés JSON (une ligne par événement) sur stdout de chaque service,
avec contexte
worker_id, url_id, domain_id, url, outcome, quebec_score, ms(packages/logging). Consultables viadocker compose logs -f crawler-worker. - Métriques opérationnelles exposées par l'API :
GET /api/status(public) : pages indexées, domaines, débits horaires, état du crawler.GET /api/admin/overview(protégé) : files par statut, débits, distribution HTTP, latences fetch p50/p95, top domaines, erreurs récentes, backlog d'enrichissement.- Toutes calculées sur les vraies tables (
crawl_attempts,frontier_items) — aucun compteur simulé (§ fake).
- Dashboard admin :
/adminsur le web (flux live du crawl, contrôles pause/seeds/blocage).
Prochaine étape (post-MVP)
Exporter ces mêmes agrégats au format Prometheus (/metrics) et brancher
Grafana — les requêtes SQL de Database.admin_overview() sont la source de vérité,
l'export est un simple reformatage. Choix pragmatique conforme au CLAUDE.md §13.