TP1 para 7574 - Distribuidos I.
Referirse a informe/informe.pdf.
El proyecto fue empaquetado con poetry para manejar dependencias cómodamente. Puede seguir la guía de instalación para instalar la herramienta.
Teniendo poetry instalado, el siguiente comando creará un nuevo entorno para poder ejecutar el proyecto:
poetry install --no-devEn el root del proyecto se provee un archivo sample_settings.ini con los posibles valores de configuración. Sin embargo, el archivo esperado se llama settings.ini. Por motivos obvios de seguridad, este archivo es ignorado en el sistema de versionado con .gitignore.
Puede copiar el archivo de prueba provisto, renombrarlo y modificar los valores según necesidad.
Cada posible configuración se puede sobreescribir con variables de entorno con la nomenclatura<Seccion>_<Clave>. Por ejemplo SERVER_HOST.
Revisar el mensaje de ayuda del servidor:
poetry run metrics_server --helpRevisar el mensaje de ayuda del cliente:
poetry run metrics_client --helpPara ver el mensaje de ayuda de cada uno de los subcomandos:
poetry run metrics_client <command> --helpDesde la carpeta docker, ejecutar:
docker-compose up --buildEl anterior comando crea un contenedor que ejecuta el servidor, dos contenedores que ejecutan un cliente que envía métricas y un contenedor que monitorea las notificaciones.
Para probar distintos escenarios, se provee un archivo Makefile con comandos para ejecutar los siguientes escenarios durante la demo:
Para cada escenario:
make docker-compose-scenario<nro>
make docker-compose-scenario<nro>-downRecordar ver stats de cada container con docker stats.
En este escenario:
- Se envía una métrica
foodurante 120 segundos, 2 veces por segundo - Se envía una métrica
bardurante 120 segundos, 2 veces por segundo - Se monitorea la métrica
foopor un promedio mayor a 10 en un período de 15 segundo- Debería suceder alrededor del segundo 15
- Se monitorea la métrica
barpor un valor máximo mayor a 10 en un período de 15 segundo- Debería suceder alrededor del segundo 15
En este escenario:
- Se envía una métrica
foodurante 20 segundos, 5 veces por segundo - Se hace una query para la métrica
foosin intervalo agregando cada 0 segundos, por máximo- Debería devolver una lista con los valores de 1 a 100
En este escenario:
- Se envía una métrica
foodurante 20 segundos, 5 veces por segundo - Se hace una query para la métrica
barsin intervalo agregando cada 0 segundos, por máximo- Debería registrar que no existe la métrica
bar
- Debería registrar que no existe la métrica
En este escenario:
- Se envía una métrica
foodurante 60 segundos, con crecimiento lineal de cantidad de métricas por segundo, arrancando en 1 y finalizando en 150 - Se envía una métrica
bardurante 60 segundos, con crecimiento lineal de cantidad de métricas por segundo, arrancando en 1 y finalizando en 150 - Se monitora la métrica
fooagregando por count mayor a 100 en un período de 1 segundo