...

Source file src/edge-infra.dev/pkg/edge/datasync/shoot/http/liveness.go

Documentation: edge-infra.dev/pkg/edge/datasync/shoot/http

     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