udistrital / autenticacion_mid

0 stars 0 forks source link

Revisión de funcionalidades ofrecidas por X-Ray #73

Open milo19980525 opened 11 months ago

milo19980525 commented 11 months ago

Se requiere revisar la documentación acerca de servicios o funcionalidades ofrecidas por X-Ray.

Especificaciones técnicas

Sub Tareas

Criterios de aceptación

Requerimientos

Dependencias

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

a52290451 commented 11 months ago

Canaries:

Las "Canaries" en AWS X-Ray son una forma de realizar pruebas de integración y detección temprana de problemas en tus aplicaciones y servicios. En el contexto de X-Ray, una "Canary" es una pequeña carga de trabajo o traza simulada que se envía a través de tu sistema para verificar la salud, el rendimiento y la detección de problemas. Estas pruebas pueden ayudarte a garantizar que tu sistema esté funcionando correctamente y a identificar cualquier problema antes de que afecte a los usuarios reales.

a52290451 commented 11 months ago

Actualizar Mapa de Servicios de AWS X-Ray de forma automatizada:

  1. De forma predeterminada, el mapa de servicios se actualiza cada 5 min. Sin embargo, existe la opción para ajustar esta medida de tiempo:

image

  1. El límite máximo de actualización del Mapa de Servicios es de 10 Segundos.
  2. La actualización del mapa de servicios se encuentra enlazado con la consulta de trazas, por lo que no es necesario realizar algún ajuste adicional.
a52290451 commented 10 months ago

Se realiza optimización de la implementación de AWS X-Ray en las APIs para mostrar el código de respuesta final en el segmento principal de la traza:

image

image

image

image

Se implementan diferentes funciones que permiten inicializar los segmentos de cada traza con la inicialización de XRAY, y finalizarlos dependiendo de si hay una respuesta correcta de la petición o si ha ocurrido algún error. Además, se actualiza el estado del segmento desde el archivo "utilidades" de cada API:

image

image

Con estos ajustes, se realiza un seguimiento mas detallado del estado en el cual se finalizan las peticiones entrantes a cada API.

a52290451 commented 10 months ago

Actualización:

Se realiza la instrumentación de código en APIs, para actualización automática del estado de las solicitudes entrantes y salientes.

En el archivo "utils_oas/xray/xray.go" se implementan las siguientes funciones de control y actualización del estado de los segmentos que se envían a AWS-XRay:

image

image

image

image

De esta forma se controla el cambio de estado en cada situación que se presente.

En Las APIs MID, fue necesario ajustar el archivo "utilidades" de la siguiente forma:

image

Después de realizar la solicitud de información a otras APIs, se actualiza el estado del segmento dependiendo de la respuesta obtenida, que puede ser un error o una consulta satisfactoria.

También se modifica la función "ErrorController", presente en todos los controladores:

image

En este caso, se actualiza el estado del segmento, según el estado de la solicitud y se realiza el cierre del segmento con error.

Observaciones:

  1. Se requiere realizar una evaluación de coherencia de respuestas de solicitudes de APIs. En el caso de "cumplidos_dve_mid" algunas solicitudes en las cuales el código de respuesta debe ser 500, aparecen como 200.
  2. Revisar implementación de GetRequestNew y funciones derivadas en el archivo "utilidades", cuando un endpoint no responde, no se realiza un manejo adecuado del error.
  3. El error 404, no se puede capturar en los segmentos ya que su causa es a raíz de no encontrar el servicio señalado para el API en cuestión. Se debe buscar una forma de identificarlo sin alterar el código fuente de las APIs.
a52290451 commented 10 months ago

La implementación de Alarmas se señala en: https://github.com/udistrital/autenticacion_mid/issues/76

a52290451 commented 10 months ago

Para la implementación de Canaries se debe tener en cuenta lo siguiente:

Al crear un canary, se crean los siguientes recursos para el mismo:

  1. Un rol de IAM con el nombre CloudWatchSyntheticsRole-canary-name-uuid (si usa la CloudWatch consola para crear el canario y especifica que se cree un nuevo rol para el canario)

  2. Una política de IAM con el nombre CloudWatchSyntheticsPolicy-canary-name-uuid.

  3. Un bucket de S3 con el nombre cw-syn-results-accountID-region.

  4. Alarmas con el nombre Synthetics-Alarm-MyCanaryName, si desea que se creen alarmas para el canary.

Por tal razón se debe tener permisos para su creación. Los canarios ejecutan una serie de acciones sobre determinados enlaces, pueden servir para:

  1. Monitoreo de latidos.
  2. Canary de API.
  3. Verificador de enlaces que no funcionan.
  4. Proyecto de monitoreo visual.
  5. Registrador de canaries.
  6. Generador de flujo de trabajo de la GUI.

image

Estos proyecto se encuentran predeterminados y pueden ser seleccionados, sin embargo, se pueden codificar otro tipo de canarios para tareas especificas, mediante scripts.