es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener el nombre del contenedor de Docker desde Python durante la carga de pruebas de Locust.

Estoy utilizando Python, Docker y Locust para realizar pruebas de carga en un servicio en el que estoy trabajando. Tengo algunos datos de prueba que necesito dividir de manera única entre todos los contenedores de Docker que se generen dinámicamente. Locust asigna a todos sus contenedores de trabajadores un nombre con el siguiente estilo: “worker_N”. ¿Cómo puedo obtener el nombre del trabajador asignado al contenedor verificando dentro del mismo script de Python? Estoy utilizando docker compose para generar los contenedores, por lo que no puedo utilizar la solución similar proporcionada aquí.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el nombre del trabajador asignado al contenedor verificando dentro del script de Python cuando se utiliza Docker Compose para crear los contenedores, puedes utilizar el siguiente código:

    import os
    
    worker_name = os.environ.get('LOCUST_WORKER')
    
    if worker_name:
      print(f'Este es el trabajador {worker_name}')
    else:
      print('Este es el nodo maestro')
    

    Explicación:

    • os.environ.get('LOCUST_WORKER') obtiene el valor de la variable de entorno LOCUST_WORKER, que contiene el nombre del trabajador asignado por Locust.
    • La instrucción if worker_name: verifica si la variable LOCUST_WORKER ha sido establecida. Si lo está, entonces este contenedor es un trabajador y se imprime el nombre del trabajador. Si no lo está, entonces este contenedor es el nodo maestro y se imprime un mensaje.
    • Es importante destacar que LOCUST_WORKER se establece automáticamente por Locust al iniciar cada contenedor de trabajador, por lo que no es necesario establecer manualmente esta variable de entorno en tu archivo de Docker Compose.

Comments are closed.