wip
This commit is contained in:
166
examples/README.md
Normal file
166
examples/README.md
Normal file
@@ -0,0 +1,166 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user