Chaos Monkey for Spring Boot es una herramienta que introduce los principios de Chaos Engineering en nuestras aplicaciones Spring Boot, en esencia añadiendo latencias a nuestro endpoints REST, lanzando errores, matando apps,….para ver cómo se comporta nuestro sistema completo…como podéis ver algo muy importante en la era de los microservicios 😉
Como vamos a ver, usarlo en una aplicación Spring Boot es muy sencillo
¿Cómo configurarlo?
Primero añadimos la dependencia:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>chaos-monkey-spring-boot</artifactId>
<version>2.1.1</version>
</dependency>
Luego habilitamos el profile chaos-monkey (o sobre mi profile pongo chaos.monkey.enabled=true)
java -jar your-app.jar --spring.profiles.active=chaos-monkey
Chaos Monkey tiene 2 conceptos: Watchers y Assaults.
- Watchers: Un Watcher es un componente Sprign Boot que vía AOP comprueba los métodos públicos de los Beans de tipo Componente, Controller, RestController, Service y Repository y en función de la configuración de la librería me permite:
- Latency Assault: añade una latencia aleatoria a la petición
- Exception Assault lanza RuntimeExceptions aleatorias
- AppKiller Assault –mata la app
- Assaults: Los Assaults son escenarios en los que queremos testar mi aplicación sobre alguno de los escenarios de test de arriba, así que en función de lo que quiero probar: Se configuran así:
chaos:
monkey:
assaults:
level: 8
latencyRangeStart: 1000
latencyRangeEnd: 10000
exceptionsActive: true
killApplicationActive: true
watcher:
repository: true
restController: true
Y para que funcionen con Spring Boot Actuator:
management:
endpoint:
chaosmonkey:
enabled: true
endpoints:
web:
exposure:
include: health,info,chaosmonkey
¿Entonces qué? ¿Lo probamos? 😊


Deja un comentario