Closed a52290451 closed 1 year ago
Se realiza solicitud de permisos para configuración de servicio X-Ray en AWS:
https://tuleap.portaloas.udistrital.edu.co/plugins/tracker/?aid=53664
Tomando como base el API cumplidos_dve_mid, se realiza la creación del archivo xray.go, cuyo objetivo es inicializar el SDK y proporcionar la configuración necesaria para monitorear todas las solicitudes entrantes por el puerto especificado:
Esta es la estructura base del archivo, la cual puede ser personalizada para monitorear segmentos específicos.
Se realiza solicitud de generación de clave publica y privada para conectar a AWS con mi cuenta personal, desde AWS CLI.
https://tuleap.portaloas.udistrital.edu.co/plugins/tracker/?aid=53664
Estas claves son necesarias para realizar pruebas en local del nuevo servicio AWS X-Ray, empleando un demonio.
Se realiza el desarrollo del código necesario para rastrear los segmentos y subsegmentos del API cumplidos_dve_mid, a nivel de controladores.
Para rastrear las solicitudes entrantes en una petición, se requiere incluir el siguiente codigo en cada una al interior de cada controlador:
De esta forma se inicializa el segmento a rastrear, se evalúa la respuesta del controlador y se cierra el segmento.
Se realiza actualización de archivo xray.go:
De esta forma solo es necesario inicializar el servicio XRAY desde el archivo main.go y quedará listo para capturar trazos de acuerdo a los segmentos definidos.
Pruebas en ambiente local
Para realizar pruebas en ambiente local, se instalo un demonio de XRAY el cual queda activo en el puerto :2000. Este demonio reemplaza a AWS XRay recibiendo los trazos capturados cada vez que se hace una solicitud al API.
Como se observa en la imagen, se capturan correctamente los trazos asociados a los segmentos del API monitoreados.
Se realizan las siguientes mejoras de la implementación de X-Ray en ambiente local:
Observaciones:
Como conclusión de este issue:
Todo el detalle mostrado corresponde a los segmentos capturados para una sola solicitud al API. Este nivel de detalle puede simplificarse si así se requiere.
Queda pendiente lograr que las APIs que son consumidas desde el API que recibe la solicitud inicial, queden enlazadas en el mapa de servicios, con el nombre del API correspondiente. Actualmente esta conexión no se ha podido logra:
Como se observa, los nodos "cumplidos_dve_mid" y "cumplidos_dve_crud" salen desconectados gracias a que no se mantiene el ID de traza entre las dos APIs cuando una consume a la otra.
Además, se requiere simplificar la implementación de X-RAY en cada API. Actualmente es demasiado compleja para lograr su replica en otras APIs.
Se requiere realizar una prueba de funcionamiento del servicio X-Ray de AWS sobre 2 APIs implementadas en GO, con el fin de comprobar que el servicio cumple con las condiciones minimas necesarias para monitoreo y conexiones entre APIs.
Especificaciones técnicas
Sub Tareas
Criterios de aceptación
Requerimientos
Dependencias
Definition of Ready - DoR
Definition of Done - DoD - Desarrollo