L'API exposait /metrics, mais aucun collecteur ne le lisait : monitoring/ ne contenait que des .gitkeep. Sous le profil Compose `monitoring` : prometheus, alertmanager, grafana, postgres-exporter, node-exporter et cadvisor. Tous ont un mem_limit, pour environ 700 Mo au total sur la VM de 8 Go, et leurs interfaces n'écoutent que sur 127.0.0.1. Le profil est actif en prod via COMPOSE_PROFILES, donc à chaque déploiement, et se lance à la demande ailleurs (make monitoring-up). - Neuf règles d'alerte (API, base, hôte, cibles). Chacune a un cas dans les tests joués par `promtool test rules`, en CI comme par make monitoring-check. - Alertmanager route les alertes par courriel vers Mailpit ; un critical masque le warning de la même cible. - Grafana est provisionné : sources Prometheus et TimescaleDB, et trois tableaux de bord (API, données et dérive du modèle, infrastructure). - Le rôle PostgreSQL `supervision` est en lecture seule sur les seules tables métier (db/roles/supervision.sql), posé par make db-ensure-supervision et par stack-up quand le profil est actif. - Le jeton de /metrics passe à Prometheus en secret Compose (APP_METRICS_TOKEN) ; provision-host.sh génère ce secret et les deux autres. Backend : - un APP_METRICS_TOKEN vide vaut absent ; - les sondes de santé ne comptent plus dans les métriques ; - seaux de latence fins autour de 500 ms ; - un registre Prometheus par application, sans quoi toute application créée après la première (dans les tests) ne mesurait rien. Réf : #26
85 lines
1.4 KiB
Plaintext
85 lines
1.4 KiB
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
.venv/
|
|
venv/
|
|
.pytest_cache/
|
|
.mypy_cache/
|
|
.ruff_cache/
|
|
.coverage
|
|
coverage.xml
|
|
htmlcov/
|
|
test-results/
|
|
dist/
|
|
build/
|
|
*.egg-info/
|
|
|
|
# Node / Angular
|
|
node_modules/
|
|
.angular/
|
|
apps/frontend/dist/
|
|
apps/frontend/.angular/
|
|
npm-debug.log*
|
|
yarn-error.log*
|
|
|
|
# Tests de bout en bout et de charge : rapports générés et identifiants des comptes de test
|
|
playwright-report/
|
|
blob-report/
|
|
tests/e2e/.comptes.json
|
|
tests/load/results/
|
|
|
|
# Terraform
|
|
.terraform/
|
|
# .terraform.lock.hcl est versionne (pas ignore) pour figer les versions de provider entre contributeurs/CI
|
|
*.tfstate
|
|
*.tfstate.*
|
|
*.tfplan
|
|
crash.log
|
|
override.tf
|
|
override.tf.json
|
|
*_override.tf
|
|
*_override.tf.json
|
|
*.tfvars
|
|
!*.tfvars.example
|
|
kubeconfig
|
|
|
|
# Airflow
|
|
etl/airflow/logs/
|
|
airflow.db
|
|
standalone_admin_password.txt
|
|
|
|
# Environnement et secrets
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
*.pem
|
|
*.key
|
|
secrets/
|
|
|
|
# Donnees locales
|
|
data/raw/*
|
|
!data/raw/.gitkeep
|
|
*.sqlite3
|
|
|
|
# ML : jeu de donnees, modeles entraines et suivi MLflow local, tous generes/volumineux
|
|
ml/data/
|
|
ml/models/*
|
|
!ml/models/.gitkeep
|
|
ml/mlruns/
|
|
ml/mlartifacts/
|
|
ml/mlflow.db*
|
|
ml/.env
|
|
|
|
# Airflow : base sqlite locale generee par les tests d'integrite des DAGs (etl/airflow/tests)
|
|
etl/airflow/tests/.airflow_home/
|
|
|
|
# TLS : certificats du reverse proxy, générés par script ou par certbot
|
|
infra/proxy/tls/*.pem
|
|
|
|
# IDE et OS
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
.DS_Store
|
|
Thumbs.db
|