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)
}