# đŸ€– 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 1. **AutomationScheduler** - Thread background qui vĂ©rifie les triggers 2. **ChainManager** - GĂšre les sĂ©quences de workflows 3. **TriggerManager** - GĂšre les dĂ©clencheurs 4. **MĂ©triques Prometheus** - Suivi des exĂ©cutions --- ## 🚀 Utilisation ### 1. CrĂ©er une ChaĂźne Automatique **ScĂ©nario : Backup quotidien automatique** ```python 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** ```python # 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 1. **AccĂ©der** : http://localhost:5001 2. **Onglet "ChaĂźnes"** : - Cliquer "➕ Nouvelle ChaĂźne" - SĂ©lectionner les workflows - Sauvegarder 3. **Onglet "DĂ©clencheurs"** : - Cliquer "➕ Nouveau DĂ©clencheur" - Choisir le type (schedule/file) - Configurer - Activer 4. **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 : ```python # 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 ```bash # 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 ```python # 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 ```python # 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 ```python # 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 : ```bash # 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 ```bash # 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 ```python # 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 ```python # 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 ```python # 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 !** 🚀