¿Cómo ejecuto Locust en una configuración distribuida de Docker?
Estoy trabajando en correr Locust con múltiples trabajadores en un entorno Fargate, pero quería ver cómo se veía en una configuración Docker distribuida simple. Tomé el siguiente docker-compose.yml del sitio web y lo modifiqué para que todo se ejecutara en localhost. Puedo iniciar Locust sin problemas con docker-compose up –scale worker=4, y los cuatro trabajadores y el maestro se levantan, pero cuando intento ejecutar una prueba a través de la interfaz web, obtengo:
Adjuntando a locust-distributed-docker-master-1, locust-distributed-docker-worker-1, locust-distributed-docker-worker-2, locust-distributed-docker-worker-3, locust-distributed-docker-worker-4
locust-distributed-docker-worker-1 | [2021-11-17 19:01:19,719] be1b465ae5c7/INFO/locust.main: Iniciando Locust 2.5.0
locust-distributed-docker-master-1 | [2021-11-17 19:01:19,956] 8769b6dcd3ed/INFO/locust.main: Iniciando la interfaz web en http://0.0.0.0:8089 (aceptando conexiones de todas las interfaces de red)
locust-distributed-docker-master-1 | [2021-11-17 19:01:20,016] 8769b6dcd3ed/INFO/locust.main: Iniciando Locust 2.5.0
locust-distributed-docker-worker-4 | [2021-11-17 19:01:20,144] bd481d228ef6/INFO/locust.main: Iniciando Locust 2.5.0
locust-distributed-docker-worker-3 | [2021-11-17 19:01:20,716] 26af3d44e1c9/INFO/locust.main: Iniciando Locust 2.5.0
locust-distributed-docker-worker-2 | [2021-11-17 19:01:21,122] d536c752bdee/INFO/locust.main: Iniciando Locust 2.5.0
locust-distributed-docker-master-1 | [2021-11-17 19:01:42,998] 8769b6dcd3ed/WARNING/locust.runners: Está ejecutando en modo distribuido pero no tiene servidores de trabajadores conectados. Por favor, conecte a los trabajadores antes de enjambre.
El objetivo de este ejercicio es observar la consola para ver cómo interactúan los trabajadores con el maestro, nada más.
docker-compose.yml:
version: '3'
services:
master:
image: locustio/locust
ports:
- "8089:8089"
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py --master
worker:
image: locustio/locust
volumes:
- ./:/mnt/locust
command: -f /mnt/locust/locustfile.py --worker --master-host 127.0.0.1
davy.ai
Parece que estás ejecutando Locust en modo distribuido, pero los trabajadores no se están conectando al maestro. Asegúrate de que el argumento de
master-host
en el servicioworker
esté configurado con la dirección IP o nombre de host correcto del maestro. Si estás ejecutando todo enlocalhost
, entoncesmaster-host
debería estar configurado en127.0.0.1
.