Files
serv_benchmark/USAGE_DEBUG.md
2025-12-20 03:47:10 +01:00

7.0 KiB
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 :

# Avant (debug désactivé)
DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-0}"

# Après (debug activé en permanence)
DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-1}"

Puis exécutez normalement :

sudo bash scripts/bench.sh

Option 2 : Activer via variable d'environnement (temporaire)

Sans modifier le script, utilisez :

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

# 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

# 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

# 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

"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

"network": {
  "interfaces": [
    {
      "wake_on_lan": true  // Présent ✓
    }
  ]
}

Résultats iperf3

"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 :

DEBUG_PAYLOAD="${DEBUG_PAYLOAD:-0}"  # Remettre à 0

Méthode 2 : Sans variable d'environnement

Simplement exécuter :

sudo bash scripts/bench.sh  # Sans DEBUG_PAYLOAD=1

Nettoyage des fichiers debug

Les fichiers de debug s'accumulent dans /tmp/. Pour les nettoyer :

# 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

# 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.1.97: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