Skip to content

Commit db907ff

Browse files
committed
feat: Add detailed JSDoc comments to HealthController and HealthModule for improved documentation
1 parent 329771e commit db907ff

File tree

2 files changed

+72
-5
lines changed

2 files changed

+72
-5
lines changed

apps/api/src/core/health/health.controller.ts

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,45 @@ import { ApiTags } from '@nestjs/swagger'
44
import { HealthCheckService, HttpHealthIndicator, HealthCheck, DiskHealthIndicator, MemoryHealthIndicator, MongooseHealthIndicator, HealthCheckResult } from '@nestjs/terminus'
55
import { Public } from '~/_common/decorators/public.decorator'
66

7+
/**
8+
* Multiplicateur pour convertir les octets en mégaoctets.
9+
* @constant {number}
10+
*/
711
const 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')
1336
export 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> {

apps/api/src/core/health/health.module.ts

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,34 @@
1-
import { Module } from '@nestjs/common';
2-
import { TerminusModule } from '@nestjs/terminus';
3-
import { HttpModule } from '@nestjs/axios';
4-
import { HealthController } from './health.controller';
1+
import { Module } from '@nestjs/common'
2+
import { TerminusModule } from '@nestjs/terminus'
3+
import { HttpModule } from '@nestjs/axios'
4+
import { HealthController } from './health.controller'
55

6+
/**
7+
* Module de vérification de l'état de santé du système.
8+
*
9+
* Ce module configure et expose les endpoints de health check permettant de surveiller
10+
* l'état de santé de l'application, de ses dépendances et de ses ressources système.
11+
* Il utilise NestJS Terminus pour fournir des indicateurs standardisés de santé.
12+
*
13+
* @module HealthModule
14+
*
15+
* @description
16+
* Le module configure :
17+
* - **TerminusModule** : Framework de health check de NestJS avec affichage formaté des erreurs
18+
* - **HttpModule** : Module HTTP pour les vérifications de connectivité externe
19+
* - **HealthController** : Contrôleur exposant les endpoints de health check
20+
*
21+
* Fonctionnalités de monitoring :
22+
* - Vérification de la connectivité à la base de données MongoDB
23+
* - Vérification de la connectivité réseau externe
24+
* - Surveillance de l'utilisation du disque
25+
* - Surveillance de la consommation mémoire (heap et RSS)
26+
*
27+
* Utilisation :
28+
* - Les endpoints sont publics (pas d'authentification) pour permettre le monitoring externe
29+
* - Compatibles avec les systèmes de monitoring comme Kubernetes liveness/readiness probes
30+
* - Format de réponse standardisé compatible avec les outils de monitoring
31+
*/
632
@Module({
733
imports: [
834
TerminusModule.forRoot({

0 commit comments

Comments
 (0)