@@ -2,34 +2,71 @@ import { Logger } from '@nestjs/common'
22import * as Sentry from '@sentry/nestjs'
33import { nodeProfilingIntegration } from '@sentry/profiling-node'
44
5+ /**
6+ * Initialisation conditionnelle de Sentry
7+ *
8+ * @description Vérifie la présence du DSN Sentry dans les variables d'environnement
9+ * et initialise Sentry avec les configurations suivantes :
10+ * - Taux d'échantillonnage des traces : 10%
11+ * - Taux d'échantillonnage des profils : 10%
12+ * - Capture des informations personnelles (PII)
13+ * - Intégrations : Mongoose, Console, HTTP, Express, NestJS, Redis, FS
14+ * - Profiling Node.js activé
15+ *
16+ * Si SESAME_SENTRY_DSN n'est pas défini, Sentry reste désactivé et un avertissement est émis.
17+ */
518if ( ! process . env . SESAME_SENTRY_DSN ) {
619 Logger . warn ( 'SENTRY DSN not provided, Sentry is disabled' , 'SentryInit' )
720} else {
821 Sentry . init ( {
22+ /** DSN de connexion à Sentry */
923 dsn : process . env . SESAME_SENTRY_DSN ! ,
24+ /** Version de release au format nom@version */
1025 release : process . env . npm_package_name + '@' + process . env . npm_package_version ,
26+ /** Mode debug désactivé en production */
1127 debug : false ,
1228
29+ /** Envoi des données personnellement identifiables */
1330 sendDefaultPii : true ,
31+ /** Taux d'échantillonnage pour les traces (10%) */
1432 tracesSampleRate : 0.1 ,
33+ /** Taux d'échantillonnage pour les profils (10%) */
1534 profilesSampleRate : 0.1 ,
35+ /** Inclusion des variables locales dans les rapports d'erreur */
1636 includeLocalVariables : true ,
37+ /** Taux d'échantillonnage pour les sessions de profil (10%) */
1738 profileSessionSampleRate : 0.1 ,
39+ /** Cycle de vie du profiling basé sur les traces */
1840 profileLifecycle : 'trace' ,
41+ /** Profondeur de normalisation des objets */
1942 normalizeDepth : 10 ,
43+ /** Attachement des stack traces aux événements */
2044 attachStacktrace : true ,
2145
46+ /** Activation de la capture des logs */
2247 enableLogs : true ,
2348
49+ /**
50+ * Intégrations Sentry activées
51+ * @description Liste des intégrations pour capturer différents types d'événements
52+ * et erreurs provenant de diverses sources (Mongoose, HTTP, Redis, etc.)
53+ */
2454 integrations : [
55+ /** Profiling Node.js pour analyse des performances */
2556 nodeProfilingIntegration ( ) ,
26-
57+ /** Intégration Mongoose pour les erreurs de base de données */
2758 Sentry . mongooseIntegration ( ) ,
59+ /** Intégration Console pour capturer console.error/warn */
2860 Sentry . consoleIntegration ( ) ,
61+ /** Intégration HTTP pour tracer les requêtes sortantes */
2962 Sentry . httpIntegration ( ) ,
63+ /** Intégration Express pour les requêtes entrantes */
3064 Sentry . expressIntegration ( ) ,
65+ /** Intégration NestJS pour le framework */
3166 Sentry . nestIntegration ( ) ,
67+ /** Intégration Redis pour les opérations de cache */
3268 Sentry . redisIntegration ( ) ,
69+ /** Intégration FS pour les opérations système de fichiers */
3370 Sentry . fsIntegration ( ) ,
3471 ] ,
3572 } )
0 commit comments