{"id":30123289,"url":"https://github.com/erwanlt/chaos-monkey-interface","last_synced_at":"2025-10-07T23:24:06.516Z","repository":{"id":293605147,"uuid":"984558079","full_name":"ErwanLT/Chaos-Monkey-Interface","owner":"ErwanLT","description":"Interface de controle pour Chaos Monkey for Spring Boot","archived":false,"fork":false,"pushed_at":"2025-05-27T11:40:29.000Z","size":232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-10T14:36:44.720Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ErwanLT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-16T06:06:30.000Z","updated_at":"2025-05-27T11:40:33.000Z","dependencies_parsed_at":"2025-05-16T07:32:39.900Z","dependency_job_id":"e0610a68-d51b-40c9-872f-8fa01ab7c633","html_url":"https://github.com/ErwanLT/Chaos-Monkey-Interface","commit_stats":null,"previous_names":["erwanlt/chaos-monkey-interface"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ErwanLT/Chaos-Monkey-Interface","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FChaos-Monkey-Interface","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FChaos-Monkey-Interface/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FChaos-Monkey-Interface/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FChaos-Monkey-Interface/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ErwanLT","download_url":"https://codeload.github.com/ErwanLT/Chaos-Monkey-Interface/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ErwanLT%2FChaos-Monkey-Interface/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278861521,"owners_count":26058741,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-10T14:23:18.767Z","updated_at":"2025-10-07T23:24:06.470Z","avatar_url":"https://github.com/ErwanLT.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Interface Chaos Monkey\n\nInterface d'administration pour Chaos Monkey pour Spring Boot permettant de tester la résilience de vos applications Spring Boot en simulant divers types de défaillances.\n\n## Description\n\nCette application fournit une interface utilisateur conviviale pour configurer et contrôler Chaos Monkey pour Spring Boot. Elle permet de visualiser et de modifier facilement les configurations des watchers et des assaults sans avoir à manipuler directement les API REST ou les fichiers de configuration.\n\n## Fonctionnalités\n\n- **Activation/désactivation** de Chaos Monkey\n- **Configuration des Watchers** pour cibler spécifiques composants Spring:\n  - Controller\n  - RestController\n  - Service\n  - Repository\n  - Component\n  - RestTemplate\n  - WebClient\n  - Actuator Health\n  - Beans personnalisés avec sélection multiple et autocomplétion\n- **Configuration des Assaults** pour simuler différents types de défaillances:\n  - Latence réseau\n  - Exceptions\n  - Arrêt d'application (Kill Application)\n  - Saturation de la mémoire\n  - Charge CPU\n  - Services personnalisés avec sélection multiple et autocomplétion\n\n## Améliorations récentes\n\n- Sélecteurs multiples pour les beans et services avec interface agrandie\n- Auto-complétion basée sur les beans et services disponibles dans l'application\n- Gestion des erreurs améliorée lors des appels API\n- Mise à jour asynchrone pour éviter le blocage de l'UI\n- Activation/désactivation conditionnelle des champs selon les options sélectionnées\n\n## Prérequis\n\n- Java 21 ou supérieur\n- Spring Boot 3.4+\n- Application avec Chaos Monkey configuré et accessible\n\n## Installation\n\n1. Cloner le dépôt\n```bash\ngit clone https://github.com/votre-utilisateur/interface-chaos-monkey.git\ncd interface-chaos-monkey\n```\n\n2. Compiler le projet\n```bash\n./mvnw clean package\n```\n\n3. Configurer l'URL de l'application Chaos Monkey dans `application.properties`\n```properties\n# URL de l'application cible contenant Chaos Monkey\nactuator.url=http://localhost:8089\n\n# Nom de l'application (utilisé pour les identifiants)\nactuator.name=interface\n```\n\n4. Lancer l'application\n```bash\njava -jar target/interface-0.0.1-SNAPSHOT.jar\n```\n\n## Configuration\n\n### Paramètres principaux\n\nL'application peut être configurée via le fichier `application.properties` :\n\n```properties\n# URL de l'application cible où est déployée l'application avec Chaos Monkey\nactuator.url=http://localhost:8089\n\n# Nom de l'application\nactuator.name=interface\n\n# Configuration Vaadin (optionnelle)\nvaadin.launch-browser=true\n\n# Nom de l'application Spring\nspring.application.name=interface\n```\n\nVous pouvez adapter ces paramètres en fonction de votre environnement, notamment pour :\n- Cibler différentes applications en changeant l'URL actuator\n- Modifier le nom de l'application si nécessaire\n\n## Utilisation\n\nAprès le démarrage, l'interface est accessible à l'adresse: http://localhost:8080\n\n### Panneau de contrôle\n![activation.png](img/activation.png)![desactivation.png](img/desactivation.png)\n\n- **Activer/Désactiver** Chaos Monkey avec un simple bouton\n- **Rafraîchir** pour mettre à jour la configuration affichée\n\n### Configuration des Watchers\n![watcher.png](img/watcher.png)\n\nPermet de définir quels composants de votre application Spring seront ciblés par Chaos Monkey:\n- Cochez/décochez les cases pour activer/désactiver les différents types de watchers\n- Ajoutez des beans spécifiques via la sélection multiple avec autocomplétion\n- Sélectionnez plusieurs beans en une seule fois\n- Cliquez sur \"Mettre à jour\" pour appliquer les modifications\n\n### Configuration des Assaults\n![assault.png](img/assault.png)\n![assault2.png](img/assault2.png)\n![assault3.png](img/assault3.png)\n\nPermet de définir les types de défaillances à injecter et leurs paramètres:\n- **Latence**: injecte des délais dans l'exécution des méthodes\n- **Exceptions**: provoque des exceptions aléatoires\n- **Kill Application**: arrête l'application selon une expression cron\n- **Mémoire**: simule une fuite de mémoire\n- **CPU**: génère une charge CPU élevée\n- **Services personnalisés**: ciblez précisément les services à perturber via sélection multiple\n\n## Architecture technique\n\nL'application est basée sur:\n- **Spring Boot** pour la logique métier\n- **Vaadin** pour l'interface utilisateur\n- **OpenFeign** pour les appels API\n- **OpenAPI Generator** pour générer les clients d'API\n\nL'interface se connecte à l'API Actuator de Chaos Monkey pour récupérer et mettre à jour les configurations.\n\n### Flux de données\n\n1. L'utilisateur interagit avec l'interface Vaadin\n2. Les actions sont traitées par les services Spring\n3. Les requêtes sont envoyées à l'API Chaos Monkey via Feign\n4. Les résultats sont affichés dans l'interface utilisateur\n\n## Dépannage\n\n### Problèmes courants\n\n- **Erreur de connexion**: Vérifiez que l'URL de l'application Chaos Monkey est correctement configurée\n- **Erreur lors des mises à jour**: Assurez-vous que Chaos Monkey est correctement configuré dans l'application cible\n- **Problèmes d'extraction des beans**: Vérifiez que l'endpoint `/actuator/beans` est accessible\n- **Changement de chemin Actuator**: Si vous avez modifié le chemin des endpoints Actuator, assurez-vous de mettre à jour la configuration en conséquence\n\n## Contributions\n\nLes contributions sont les bienvenues! Veuillez soumettre une pull request ou créer une issue pour toute amélioration ou correction de bug.\n\n## Licence\n\nCe projet est sous licence MIT. ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferwanlt%2Fchaos-monkey-interface","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferwanlt%2Fchaos-monkey-interface","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferwanlt%2Fchaos-monkey-interface/lists"}