Files
2025-07-30 22:13:58 +02:00
..
wip
2025-07-30 22:13:58 +02:00
wip
2025-07-30 22:13:58 +02:00
wip
2025-07-30 22:13:58 +02:00
wip
2025-07-30 22:13:58 +02:00
wip
2025-07-30 22:13:58 +02:00
wip
2025-07-30 22:13:58 +02:00

Exemples d'utilisation

Ce dossier contient des exemples pratiques d'utilisation des différentes crates du projet Node Notifier.

📁 Structure

  • basic_monitoring.rs - Exemple basique de surveillance système
  • custom_thresholds.rs - Configuration de seuils personnalisés
  • discord_notifications.rs - Test du client Discord
  • continuous_monitoring.rs - Surveillance continue avec boucle

🚀 Exécution des exemples

Depuis le répertoire node_notifier :

1. Surveillance basique

cargo run --example basic_monitoring

Démontre l'utilisation basique de SystemMonitor avec les seuils par défaut.

Sortie exemple :

🖥️  Surveillance système basique

✅ Aucune alerte - Système OK

📊 Résumé des ressources:
CPU usage: 14.72%
Memory usage: 23.10%
Swap usage: 0.00%
Disk usage: 79.17%

2. Seuils personnalisés

cargo run --example custom_thresholds

Montre comment configurer des seuils personnalisés et créer des messages d'alerte sur mesure.

Fonctionnalités :

  • Seuils CPU, mémoire et disque personnalisés
  • Messages d'alerte personnalisés
  • Configuration flexible

3. Test Discord

DISCORD_WEBHOOK="your-webhook-url" cargo run --example discord_notifications

Teste la fonctionnalité de notification Discord avec différents types de messages.

Prérequis :

  • Variable d'environnement DISCORD_WEBHOOK configurée
  • Webhook Discord valide

Messages testés :

  • Message de test de connexion
  • Alerte simulée avec formatage
  • Rapport système formaté

4. Surveillance continue

DISCORD_WEBHOOK="your-webhook-url" cargo run --example continuous_monitoring

Démontre une surveillance continue avec notifications automatiques.

Fonctionnalités :

  • Vérifications toutes les 30 secondes
  • Alertes instantanées en cas de dépassement
  • Rapport périodique toutes les 5 minutes
  • Gestion des timestamps

🔧 Configuration

Variables d'environnement

Pour les exemples Discord, définissez votre webhook :

export DISCORD_WEBHOOK="https://discord.com/api/webhooks/your/webhook/url"

Ou créez un fichier .env dans le répertoire racine :

DISCORD_WEBHOOK=https://discord.com/api/webhooks/your/webhook/url

Configuration Discord

  1. Créer un webhook :

    • Accédez à votre serveur Discord
    • Paramètres du canal → Intégrations → Webhooks
    • Créez un nouveau webhook
    • Copiez l'URL
  2. Permissions requises :

    • Envoyer des messages
    • Intégrer des liens
    • Utiliser des emojis externes

📊 Cas d'usage

Surveillance ponctuelle

Utilisez basic_monitoring ou custom_thresholds pour une vérification unique des ressources système.

Monitoring de production

Utilisez continuous_monitoring comme base pour un système de surveillance permanent.

Tests d'intégration

Utilisez discord_notifications pour valider votre configuration Discord.

🛠️ Personnalisation

Modifier les seuils

Dans custom_thresholds.rs, adaptez les valeurs selon vos besoins :

ResourceThreshold::new(
    "CPU".to_string(),
    get_cpu_usage,
    95.0, // Seuil critique à 95%
    "🔥 CPU en surchauffe !".to_string(),
),

Ajouter des métriques

Créez vos propres fonctions de surveillance :

fn get_custom_metric(sys: &System, disks: &Disks) -> f32 {
    // Votre logique personnalisée
    42.0
}

Personnaliser les messages Discord

Modifiez le formatage des messages dans continuous_monitoring.rs :

let message = format!(
    "🚨 **ALERTE CRITIQUE**\n\n{}\n\n{}", 
    alert, 
    chrono::Utc::now().format("%H:%M:%S")
);

🔍 Debugging

Activer les logs

RUST_LOG=debug cargo run --example basic_monitoring

Tester sans Discord

Les exemples basic_monitoring et custom_thresholds fonctionnent sans configuration Discord.

Vérifier les métriques

Consultez les valeurs retournées pour identifier les problèmes de seuils.

💡 Conseils

  • Production : Adaptez continuous_monitoring pour vos besoins spécifiques
  • Seuils : Commencez avec des valeurs conservatrices et ajustez progressivement
  • Rate limiting : Attention aux limites Discord (30 req/min par webhook)
  • Monitoring : Surveillez aussi les performances de votre système de monitoring