...
1 package http
2
3 import (
4 "context"
5 "fmt"
6 "net/http"
7
8 dsHTTP "edge-infra.dev/pkg/edge/datasync/http"
9 commonCfg "edge-infra.dev/pkg/edge/datasync/internal/config"
10 "edge-infra.dev/pkg/edge/datasync/kafkaclient"
11 )
12
13 func NewLivenessServer(pinger kafkaclient.Pinger, shouldRun chan bool, cfg *commonCfg.Config) *dsHTTP.Server {
14 serverMux := http.NewServeMux()
15 serverMux.HandleFunc("/healthz", healthCheckHandler(pinger))
16 return dsHTTP.NewServer(cfg.LivenessPort, serverMux, shouldRun)
17 }
18
19 func healthCheckHandler(pinger kafkaclient.Pinger) http.HandlerFunc {
20 return func(w http.ResponseWriter, _ *http.Request) {
21 ctx := context.Background()
22 err := pinger.Ping(ctx)
23 if err != nil {
24 fmt.Fprintf(w, "down")
25 return
26 }
27 fmt.Fprintf(w, "up")
28 }
29 }
30
View as plain text