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èmecustom_thresholds.rs- Configuration de seuils personnalisésdiscord_notifications.rs- Test du client Discordcontinuous_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_WEBHOOKconfiguré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
-
Créer un webhook :
- Accédez à votre serveur Discord
- Paramètres du canal → Intégrations → Webhooks
- Créez un nouveau webhook
- Copiez l'URL
-
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_monitoringpour 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