Files
serv_benchmark/docs/USAGE_DEBUG.md
Gilles Soulier c67befc549 addon
2026-01-05 16:08:01 +01:00

268 lines
7.0 KiB
Markdown
Executable File

# 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` |