FEAT: Health checks complets — /health/ready + /health/live avec degradationLevel #13

Closed
opened 2026-08-10 21:02:19 +02:00 by nonobis · 0 comments
Owner

🎯 Contexte

Les endpoints actuels sont /healthz et /readyz. La spec définit une sémantique plus riche avec checks de dépendances et niveau de dégradation IA.

📚 Référence spec (MASTER_SPECIFICATION.md v2.0)

Phase 24 :

  • GET /health (basique : API répond)
  • GET /health/ready (DB, Alarik, Broker IA, Redis OK)
  • GET /health/live (ready + pas de degradation active) → 503 si dégradé, avec degradationLevel
    13.2 Health Checks : API 30s, PostgreSQL ping 30s, Alarik GET /health 30s, Broker IA (AMQP) 30s, Ollama /api/tags 60s, Agent heartbeat 30s

🔍 État actuel (vérifié dans le code)

HealthController : /healthz (liveness) + /readyz (HealthCheckService — DB seulement). Pas de checks Alarik/broker/Ollama/Redis, pas de /health/ready, pas de /health/live, pas de degradationLevel.

🧩 À faire

  • Aligner les routes : /health, /health/ready, /health/live (garder /healthz,/readyz en aliases si nécessaire)
  • Enregistrer les checks : PostgreSQL, Alarik, Broker IA (si configuré), Redis (si configuré)
  • Exposer degradationLevel dans /health/live (via le degradation tracker du ticket #4)
  • Tests

🧪 Critères d'acceptation

  • /health/ready → 503 si DB down
  • /health/live → 503 + degradationLevel si broker/exécutant IA down
  • Format de réponse conforme à l'exemple 13.2

📁 Fichiers concernés

src/Heimdall.Web/Controllers/HealthController.cs, src/Heimdall.Infrastructure/DependencyInjection.cs, src/Heimdall.Infrastructure/Services/Ai/

## 🎯 Contexte Les endpoints actuels sont `/healthz` et `/readyz`. La spec définit une sémantique plus riche avec checks de dépendances et niveau de dégradation IA. ## 📚 Référence spec (MASTER_SPECIFICATION.md v2.0) **Phase 24** : - `GET /health` (basique : API répond) - `GET /health/ready` (DB, Alarik, Broker IA, Redis OK) - `GET /health/live` (ready + pas de degradation active) → 503 si dégradé, avec `degradationLevel` **13.2 Health Checks** : API 30s, PostgreSQL ping 30s, Alarik GET /health 30s, Broker IA (AMQP) 30s, Ollama `/api/tags` 60s, Agent heartbeat 30s ## 🔍 État actuel (vérifié dans le code) `HealthController` : `/healthz` (liveness) + `/readyz` (HealthCheckService — DB seulement). Pas de checks Alarik/broker/Ollama/Redis, pas de `/health/ready`, pas de `/health/live`, pas de degradationLevel. ## 🧩 À faire - [ ] Aligner les routes : /health, /health/ready, /health/live (garder /healthz,/readyz en aliases si nécessaire) - [ ] Enregistrer les checks : PostgreSQL, Alarik, Broker IA (si configuré), Redis (si configuré) - [ ] Exposer `degradationLevel` dans /health/live (via le degradation tracker du ticket #4) - [ ] Tests ## 🧪 Critères d'acceptation - [ ] /health/ready → 503 si DB down - [ ] /health/live → 503 + degradationLevel si broker/exécutant IA down - [ ] Format de réponse conforme à l'exemple 13.2 ## 📁 Fichiers concernés src/Heimdall.Web/Controllers/HealthController.cs, src/Heimdall.Infrastructure/DependencyInjection.cs, src/Heimdall.Infrastructure/Services/Ai/
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#13
No description provided.