# Mode DEBUG - Guide d'utilisation ## Configuration du mode DEBUG Le mode DEBUG permet d'afficher le payload JSON complet avant l'envoi au serveur et de le sauvegarder dans un fichier. ### Option 1 : Activer directement dans le script (permanent) Éditez le fichier `scripts/bench.sh` à la ligne 37 : ```bash # Avant (debug désactivé) DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-0}" # Après (debug activé en permanence) DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-1}" ``` Puis exécutez normalement : ```bash sudo bash scripts/bench.sh ``` ### Option 2 : Activer via variable d'environnement (temporaire) Sans modifier le script, utilisez : ```bash DEBUG_PAYLOAD=1 sudo bash scripts/bench.sh ``` **Note** : Cette méthode nécessite `DEBUG_PAYLOAD=1` à chaque exécution. ## Ce que fait le mode DEBUG Lorsque `DEBUG_PAYLOAD=1` : 1. **Affiche le payload complet** formaté avec `jq` : ``` ════════════════════════════════════════════════════════ DEBUG: Payload JSON complet ════════════════════════════════════════════════════════ { "device_identifier": "lenovo-bureau", "bench_script_version": "1.1.0", "hardware": { "cpu": { "vendor": "GenuineIntel", "model": "Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz", "cores": 4, "threads": 4, ... }, "ram": { "total_mb": 7771, "used_mb": 4530, "free_mb": 1291, "shared_mb": 1950, ... }, "network": { "interfaces": [ { "name": "eno1", "type": "ethernet", "mac": "xx:xx:xx:xx:xx:xx", "ip": "10.0.1.169", "speed_mbps": 1000, "wake_on_lan": true } ] } }, "results": { "cpu": { "score": 12.17, ... }, "memory": { "score": 0.0, ... }, "disk": { "score": 67.65, ... }, "network": { "upload_mbps": 427.86, "download_mbps": 398.94, "ping_ms": 44.16, "score": 41.34 }, "global_score": 25.15 } } ════════════════════════════════════════════════════════ ``` 2. **Sauvegarde dans un fichier** avec timestamp : ``` ✓ Payload sauvegardé dans: /tmp/bench_payload_20251207_234512.json ``` 3. **Attend confirmation** avant d'envoyer : ``` Appuyez sur Entrée pour continuer l'envoi ou Ctrl+C pour annuler... ``` ## Utilisation pratique ### Vérifier les données avant envoi ```bash # Activer le debug DEBUG_PAYLOAD=1 sudo bash scripts/bench.sh # Le script s'arrête avant l'envoi # Vous pouvez alors : # - Vérifier le payload affiché # - Consulter le fichier JSON sauvegardé # - Appuyer sur Entrée pour continuer # - Ou Ctrl+C pour annuler ``` ### Sauvegarder le payload sans envoyer ```bash # Lancer avec debug DEBUG_PAYLOAD=1 sudo bash scripts/bench.sh # Quand le script demande confirmation : # Appuyez sur Ctrl+C pour annuler l'envoi # Le payload est déjà sauvegardé dans /tmp/bench_payload_*.json ``` ### Analyser les payloads sauvegardés ```bash # Lister tous les payloads sauvegardés ls -lh /tmp/bench_payload_*.json # Afficher le dernier payload jq '.' /tmp/bench_payload_*.json | tail -n 1 # Comparer deux payloads diff <(jq -S '.' /tmp/bench_payload_20251207_234512.json) \ <(jq -S '.' /tmp/bench_payload_20251207_235612.json) ``` ## Vérifications importantes Avec le mode DEBUG activé, vous pouvez vérifier que : ### ✅ Données RAM complètes ```json "ram": { "total_mb": 7771, "used_mb": 4530, // Présent ✓ "free_mb": 1291, // Présent ✓ "shared_mb": 1950 // Présent ✓ } ``` ### ✅ Données réseau Wake-on-LAN ```json "network": { "interfaces": [ { "wake_on_lan": true // Présent ✓ } ] } ``` ### ✅ Résultats iperf3 ```json "results": { "network": { "upload_mbps": 427.86, // Présent ✓ "download_mbps": 398.94, // Présent ✓ "ping_ms": 44.16, // Présent ✓ "score": 41.34 } } ``` ## Désactiver le mode DEBUG ### Méthode 1 : Dans le script (permanent) Éditez `scripts/bench.sh` ligne 37 : ```bash DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-0}" # Remettre à 0 ``` ### Méthode 2 : Sans variable d'environnement Simplement exécuter : ```bash sudo bash scripts/bench.sh # Sans DEBUG_PAYLOAD=1 ``` ## Nettoyage des fichiers debug Les fichiers de debug s'accumulent dans `/tmp/`. Pour les nettoyer : ```bash # Supprimer tous les payloads de debug rm /tmp/bench_payload_*.json # Ou supprimer les payloads de plus de 7 jours find /tmp -name "bench_payload_*.json" -mtime +7 -delete ``` ## Cas d'usage ### 1. Développement / Tests Activez le debug en permanence dans le script pendant le développement. ### 2. Debugging d'erreurs Si vous avez une erreur HTTP 422 ou 500, activez le debug pour voir exactement ce qui est envoyé. ### 3. Validation après modifications Après modification du script, vérifiez que toutes les données attendues sont présentes. ### 4. Documentation Sauvegardez un payload exemple pour la documentation de l'API. ## Exemple complet ```bash # Terminal 1 : Lancer avec debug gilles@serveur:~$ DEBUG_PAYLOAD=1 sudo bash scripts/bench.sh # ... Le script collecte les données ... # Affichage du payload complet ════════════════════════════════════════════════════════ DEBUG: Payload JSON complet ════════════════════════════════════════════════════════ { "device_identifier": "lenovo-bureau", ... } ════════════════════════════════════════════════════════ ✓ Payload sauvegardé dans: /tmp/bench_payload_20251207_234512.json Appuyez sur Entrée pour continuer l'envoi ou Ctrl+C pour annuler... # [Vous appuyez sur Entrée] ✓ Envoi du payload vers: http://10.0.0.50:8007/api/benchmark ✓ Payload envoyé avec succès (HTTP 200) # Terminal 2 : Analyser le payload sauvegardé gilles@serveur:~$ jq '.hardware.ram' /tmp/bench_payload_20251207_234512.json { "total_mb": 7771, "used_mb": 4530, "free_mb": 1291, "shared_mb": 1950, ... } ``` ## Résumé | Action | Commande | |--------|----------| | Activer temporairement | `DEBUG_PAYLOAD=1 sudo bash scripts/bench.sh` | | Activer en permanence | Éditer ligne 37 du script : `DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-1}"` | | Désactiver | `sudo bash scripts/bench.sh` (sans DEBUG_PAYLOAD=1) | | Voir les payloads sauvegardés | `ls /tmp/bench_payload_*.json` | | Analyser un payload | `jq '.' /tmp/bench_payload_YYYYMMDD_HHMMSS.json` | | Nettoyer | `rm /tmp/bench_payload_*.json` |