Closed AlexFBP closed 3 years ago
De acuerdo a lo siguiente (a la fecha de este comentario) https://github.com/udistrital/utils_oas/blob/1a06b62369f447a56f0e867d1fee26e81803dbd1/apiStatusLib/apistatus.go#L19-L21 ya se retorna algo similar a lo mostrado en el paso 6 (más abajo)
Para probarlo:
Se usó configuración_crud en local, importando utils_oas también en local. Cambiando el go.mod provisionalmente, agregando esto al final:
Se creó un handler para el status/health check, que basicamente lo que hace es consultar si una petición a una de las tablas originales: (Se abrirá otro PR para lo que tenga que ver con configuracion_api)
(El logs.Error()
no es necesario en el handler, ya internamente se llama a logs.Critical()
con el error retornado por el callback (o por el panic()
capturado )
Se registró el handler en el main.go
Se puso a ejecutar el crud, estando la DB activa
Una vez reportado el http server Running on http://:8080
se probó que fuera el mismo funcionamiento de siempre con GET /
({Status: Ok})
Después de lo anterior, se detuvo el servidor postgresql y se solicitó nuevamente el GET /
, para obtener la siguiente respuesta
Se habilitó nuevamente el servidor postgresql y el {Status: Ok} volvió ante un nuevo GET /
Logs de los pasos 5-7 (Nótese tanto el UNHEALTHY_STATE
como el [C]
)
nil
se entenderá que todo va bienInit()
NOTA: Antes de fusionar, confirmar si esto es suficiente para que se considere fallido el statusCheck y/o si hay que ajustarlohttps://github.com/udistrital/utils_oas/blob/e87de53fc1058fe5afac581d7dda1ee231752ecd/apiStatusLib/apistatus.go#L18-L20Lo anterior actualmente retornaría, por ejemplo, si el handler retornara "Base de datos caída":Una vez se confirme y/o ajuste, y para evitar hacer un nuevo PR; se podría quitar el estado DraftDe acuerdo a lo conversado con @fernandotower , basta con retornar un código HTTP distinto de 200 durante más de 3 ping para que se reinicie el servicio