@@ -4,13 +4,45 @@ import { ApiTags } from '@nestjs/swagger'
44import { HealthCheckService , HttpHealthIndicator , HealthCheck , DiskHealthIndicator , MemoryHealthIndicator , MongooseHealthIndicator , HealthCheckResult } from '@nestjs/terminus'
55import { Public } from '~/_common/decorators/public.decorator'
66
7+ /**
8+ * Multiplicateur pour convertir les octets en mégaoctets.
9+ * @constant {number}
10+ */
711const MEMORY_MULTIPLIER = 1024 * 1024
8- const DISK_MULTIPLIER = 1024 * 1024 * 1024
912
13+ /**
14+ * Contrôleur pour la vérification de l'état de santé du système.
15+ *
16+ * Ce contrôleur expose des endpoints de health check permettant de surveiller
17+ * l'état de santé de l'application et de ses dépendances. Il utilise NestJS Terminus
18+ * pour vérifier différents indicateurs de santé.
19+ *
20+ * @class HealthController
21+ *
22+ * @description
23+ * Indicateurs de santé vérifiés :
24+ * - **Mongoose** : Connectivité à la base de données MongoDB
25+ * - **HTTP** : Connectivité réseau externe (test avec GitHub)
26+ * - **Disk** : Utilisation du disque (seuil à 95%)
27+ * - **Memory Heap** : Utilisation de la mémoire heap (seuil à 512 MB)
28+ * - **Memory RSS** : Utilisation de la mémoire RSS (seuil à 512 MB)
29+ *
30+ * Le endpoint est public (pas d'authentification requise) pour permettre
31+ * aux systèmes de monitoring externes de vérifier l'état du service.
32+ */
1033@Public ( )
1134@ApiTags ( 'core/health' )
1235@Controller ( 'health' )
1336export class HealthController {
37+ /**
38+ * Constructeur du contrôleur HealthController.
39+ *
40+ * @param {HealthCheckService } health - Service de vérification de santé
41+ * @param {MongooseHealthIndicator } mongoose - Indicateur de santé MongoDB
42+ * @param {HttpHealthIndicator } http - Indicateur de santé HTTP
43+ * @param {DiskHealthIndicator } disk - Indicateur de santé du disque
44+ * @param {MemoryHealthIndicator } memory - Indicateur de santé de la mémoire
45+ */
1446 public constructor (
1547 private readonly health : HealthCheckService ,
1648
@@ -20,6 +52,15 @@ export class HealthController {
2052 private readonly memory : MemoryHealthIndicator ,
2153 ) { }
2254
55+ /**
56+ * Endpoint de vérification de l'état de santé du système.
57+ *
58+ * Exécute une série de vérifications pour déterminer si l'application
59+ * et ses dépendances sont opérationnelles. Retourne un statut global
60+ * ainsi que le détail de chaque indicateur.
61+ *
62+ * @returns {Promise<HealthCheckResult> } Résultat complet du health check
63+ */
2364 @Get ( )
2465 @HealthCheck ( )
2566 public async check ( ) : Promise < HealthCheckResult > {
0 commit comments