From 6a79176349848166a61a0bbe98c5e0c0c3e1bfbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cnishant-sharma=E2=80=9D?= Date: Wed, 31 Mar 2021 10:14:54 +0530 Subject: [PATCH] health check --- server/handlers.go | 19 +++++++++++++++++++ server/server.go | 2 ++ 2 files changed, 21 insertions(+) diff --git a/server/handlers.go b/server/handlers.go index f0d89c2..4e06d04 100644 --- a/server/handlers.go +++ b/server/handlers.go @@ -9,6 +9,10 @@ import ( "net/http" ) +var ( + healthyBool bool = true +) + func eventsHandler(w http.ResponseWriter, r *http.Request) { var reader io.Reader reader = r.Body @@ -22,3 +26,18 @@ func eventsHandler(w http.ResponseWriter, r *http.Request) { lib.RequestChannel <- &lib.RequestObject{Body: body, Header: r.Header} io.WriteString(w, "ok") } + +func healthHandler(w http.ResponseWriter, r *http.Request){ + if healthyBool { + w.Header().Set("Content-Type", "application/json") + io.WriteString(w, "true") + } else { + http.Error(w, "server unhealthy", http.StatusServiceUnavailable) + return + } +} + +func healthToggleHandler(w http.ResponseWriter, r *http.Request){ + healthyBool = !healthyBool + io.WriteString(w, "toggled") +} diff --git a/server/server.go b/server/server.go index f00e577..041231c 100644 --- a/server/server.go +++ b/server/server.go @@ -39,6 +39,8 @@ func NewServer(port string) (*Server, error) { router := mux.NewRouter() router.HandleFunc("/events", eventsHandler).Methods("POST") + router.HandleFunc("/health", healthHandler).Methods("GET") + router.HandleFunc("/health/toggle", healthToggleHandler).Methods("GET") httpServer := &http.Server{Addr: ":" + port, Handler: router} newServer := &Server{HttpServer: httpServer, Listener: listener}