167 lines
4.3 KiB
Markdown
167 lines
4.3 KiB
Markdown
# 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
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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 :
|
|
|
|
```bash
|
|
export DISCORD_WEBHOOK="https://discord.com/api/webhooks/your/webhook/url"
|
|
```
|
|
|
|
Ou créez un fichier `.env` dans le répertoire racine :
|
|
|
|
```env
|
|
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 :
|
|
|
|
```rust
|
|
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 :
|
|
|
|
```rust
|
|
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` :
|
|
|
|
```rust
|
|
let message = format!(
|
|
"🚨 **ALERTE CRITIQUE**\n\n{}\n\n⏰ {}",
|
|
alert,
|
|
chrono::Utc::now().format("%H:%M:%S")
|
|
);
|
|
```
|
|
|
|
## 🔍 Debugging
|
|
|
|
### Activer les logs
|
|
```bash
|
|
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
|