- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
7.8 KiB
🤖 Guide d'Automatisation RPA Vision V3
🎉 Automatisation Complète Implémentée !
Le système d'automatisation est maintenant 100% fonctionnel et tourne en arrière-plan 24/7.
📊 Vue d'Ensemble
Architecture
┌──────────────────────────────────────┐
│ AutomationScheduler (Thread) │
│ Tourne en arrière-plan │
└──────────────────────────────────────┘
│
├─→ Schedule Triggers
│ └─→ Vérifie toutes les 1s
│ └─→ Lance workflows/chaînes
│
├─→ File Triggers
│ └─→ Surveille répertoires
│ └─→ Lance sur nouveau fichier
│
└─→ Manual Triggers
└─→ Via API/Interface
Composants
- AutomationScheduler - Thread background qui vérifie les triggers
- ChainManager - Gère les séquences de workflows
- TriggerManager - Gère les déclencheurs
- Métriques Prometheus - Suivi des exécutions
🚀 Utilisation
1. Créer une Chaîne Automatique
Scénario : Backup quotidien automatique
from core.monitoring import AutomationScheduler
from core.monitoring.chain_manager import ChainManager
from core.monitoring.trigger_manager import TriggerManager
from pathlib import Path
# Initialiser les managers
cm = ChainManager(Path('data/chains'))
tm = TriggerManager(Path('data/triggers'))
# Créer une chaîne
chain = cm.create_chain(
name="Backup Quotidien",
workflows=["wf_export", "wf_compress", "wf_upload"]
)
# Créer un trigger schedule pour cette chaîne
trigger = tm.create_trigger(
trigger_type="schedule",
workflow_id=chain.chain_id, # Pointer vers la chaîne !
config={
"interval_seconds": 86400 # 24 heures
}
)
print(f"✅ Chaîne {chain.chain_id} créée")
print(f"✅ Trigger {trigger.trigger_id} créé")
print("🤖 Le backup se lancera automatiquement toutes les 24h")
2. Créer un Trigger File
Scénario : Traiter automatiquement les factures
# Créer un trigger qui surveille un dossier
trigger = tm.create_trigger(
trigger_type="file",
workflow_id="wf_process_invoice",
config={
"watch_directory": "/tmp/invoices",
"file_pattern": "*.pdf"
}
)
print("✅ Trigger file créé")
print("🤖 Chaque PDF dans /tmp/invoices lancera le workflow")
3. Via l'Interface Admin
-
Accéder : http://localhost:5001
-
Onglet "Chaînes" :
- Cliquer "➕ Nouvelle Chaîne"
- Sélectionner les workflows
- Sauvegarder
-
Onglet "Déclencheurs" :
- Cliquer "➕ Nouveau Déclencheur"
- Choisir le type (schedule/file)
- Configurer
- Activer
-
Onglet "Métriques" :
- Voir le statut de l'automatisation
- Démarrer/Arrêter le scheduler
- Voir les triggers actifs
⚙️ Configuration
Démarrage Automatique
Le scheduler démarre automatiquement avec le dashboard :
# Dans web_dashboard/app.py
automation_scheduler = AutomationScheduler(
trigger_manager=trigger_manager,
chain_manager=chain_manager,
check_interval=1.0 # Vérifier toutes les secondes
)
automation_scheduler.start()
Contrôle via API
# Vérifier le statut
curl http://localhost:5001/api/automation/status
# Démarrer
curl -X POST http://localhost:5001/api/automation/start
# Arrêter
curl -X POST http://localhost:5001/api/automation/stop
📝 Exemples Complets
Exemple 1 : Monitoring Automatique
# Créer une chaîne de monitoring
chain = cm.create_chain(
name="Health Check",
workflows=["wf_check_disk", "wf_check_memory", "wf_send_report"]
)
# Lancer toutes les heures
trigger = tm.create_trigger(
trigger_type="schedule",
workflow_id=chain.chain_id,
config={"interval_seconds": 3600}
)
Exemple 2 : Traitement de Fichiers
# Créer un workflow de traitement
# (le workflow doit déjà exister)
# Surveiller un dossier
trigger = tm.create_trigger(
trigger_type="file",
workflow_id="wf_process_csv",
config={
"watch_directory": "/data/imports",
"file_pattern": "*.csv"
}
)
Exemple 3 : Chaîne Complexe
# Créer une chaîne multi-étapes
chain = cm.create_chain(
name="Process Complet",
workflows=[
"wf_login",
"wf_download_data",
"wf_transform",
"wf_upload",
"wf_logout"
]
)
# Lancer tous les jours à minuit (86400 secondes)
trigger = tm.create_trigger(
trigger_type="schedule",
workflow_id=chain.chain_id,
config={"interval_seconds": 86400}
)
🔍 Monitoring
Logs
Tous les événements sont loggés :
# Voir les logs du scheduler
tail -f logs/automation_scheduler.log
# Voir les logs des chaînes
tail -f logs/chain_manager.log
# Voir les logs des triggers
tail -f logs/trigger_manager.log
Métriques Prometheus
# Voir les métriques
curl http://localhost:5001/metrics | grep trigger
# Exemples de métriques :
# trigger_fires_total{trigger_type="schedule",workflow_id="chain_001"} 42
# chain_executions_total{chain_id="chain_001",status="success"} 40
# workflow_duration_seconds{workflow_id="wf_login"} 5.2
Interface Admin
Onglet Métriques :
- 🟢 Statut du scheduler (Actif/Arrêté)
- 📊 Nombre de triggers actifs
- ⏱️ Intervalle de vérification
- 🔄 Bouton Démarrer/Arrêter
🛠️ Dépannage
Le scheduler ne démarre pas
# Vérifier le statut
import requests
r = requests.get('http://localhost:5001/api/automation/status')
print(r.json())
# Démarrer manuellement
r = requests.post('http://localhost:5001/api/automation/start')
print(r.json())
Les triggers ne se déclenchent pas
# Vérifier que le trigger est activé
trigger = tm.get_trigger('trigger_001')
print(f"Enabled: {trigger.enabled}")
# Activer si nécessaire
tm.enable_trigger('trigger_001')
# Vérifier la config
print(f"Config: {trigger.config}")
Les chaînes échouent
# Vérifier l'historique
chain = cm.get_chain('chain_001')
print(f"Success rate: {chain.success_rate}%")
print(f"Last execution: {chain.last_execution}")
print(f"History: {chain.execution_history[-5:]}") # 5 dernières
📊 Comportement
Schedule Triggers
- ✅ Vérifie toutes les 1 seconde
- ✅ Lance si interval écoulé
- ✅ Met à jour last_fired
- ✅ Incrémente métriques Prometheus
File Triggers
- ✅ Vérifie toutes les 1 seconde
- ✅ Détecte nouveaux fichiers
- ✅ Lance un workflow par fichier
- ✅ Mémorise fichiers traités (évite doublons)
Chaînes
- ✅ Exécution séquentielle
- ✅ Arrêt sur échec
- ✅ Historique sauvegardé
- ✅ Taux de succès calculé
🎯 Cas d'Usage
1. Backup Automatique
- Chaîne : Export → Compress → Upload
- Trigger : Schedule (quotidien)
2. Traitement de Fichiers
- Workflow : Process CSV
- Trigger : File (*.csv)
3. Monitoring Continu
- Chaîne : Check → Alert → Report
- Trigger : Schedule (horaire)
4. Workflow Nocturne
- Chaîne : Cleanup → Backup → Report
- Trigger : Schedule (minuit)
✨ Résumé
✅ Scheduler automatique - Tourne 24/7 en arrière-plan ✅ Schedule triggers - Intervalles configurables ✅ File triggers - Surveillance de répertoires ✅ Chaînes automatiques - Séquences de workflows ✅ Logs complets - Tous les événements tracés ✅ Métriques Prometheus - Monitoring temps réel ✅ Interface admin - Contrôle visuel ✅ API REST - Contrôle programmatique
L'automatisation est maintenant complète et opérationnelle ! 🚀