Translate

sábado, 4 de febrero de 2023

Hacer un endpoit para saber el estado del host con echo en Golang


Me quedo relargo el titulo... pero esa es la idea, hacer uno o más endpoints que me digan si el host responde para saber ante un problema que hacer. 

Para esto usamos echo y hacemos algo tan fácil como esto: 

func main() {

e := echo.New()

e.GET("/health", func(c echo.Context) error {

return c.String(http.StatusOK, "Ok")

})

e.Logger.Fatal(e.Start(":1323"))

}


Ahora si hacemos un pedido por el método GET a la url /health y nos contesta, esta todo bien y si no bueno vamos a tener que investigar. 

Supongamos que queremos saber información del host, por X motivo en este caso podemos utilizar una librería llamada "github.com/zcalusic/sysinfo" 

Primero agregamos el endpoint : 


func main() {

e := echo.New()

e.GET("/health", func(c echo.Context) error {

return c.String(http.StatusOK, "Ok")

})


e.GET("/info", func(c echo.Context) error {

return info(c)

})

e.Logger.Fatal(e.Start(":1323"))

}


Ahora programamos la función info : 


func info(c echo.Context) error {

var si sysinfo.SysInfo

si.GetSysInfo()


return c.JSON(http.StatusOK, si)

}


Y listo, igual esto no es taaaannn útil, sería mejor saber tambien el estado del server, pero eso es para otro post.