github.com/vseinstrumentiru/lego@v1.0.2/internal/lego/monitor/telemetry/provider.go (about) 1 package telemetry 2 3 import ( 4 health "github.com/AppsFlyer/go-sundheit" 5 healthhttp "github.com/AppsFlyer/go-sundheit/http" 6 "github.com/vseinstrumentiru/lego/internal/lego/build" 7 "go.opencensus.io/zpages" 8 "logur.dev/logur" 9 "net/http" 10 ) 11 12 func Provide(logger logur.LoggerFacade, info build.Info) (*http.ServeMux, health.Health) { 13 telemetryRouter := http.DefaultServeMux 14 telemetryRouter.Handle("/buildinfo", build.Handler(info)) 15 zpages.Handle(telemetryRouter, "/debug") 16 17 healthz := health.New() 18 healthz.WithCheckListener(NewLogger(logur.WithField(logger, "component", "healthcheck"))) 19 20 { 21 handler := healthhttp.HandleHealthJSON(healthz) 22 telemetryRouter.Handle("/healthz", handler) 23 24 // Kubernetes style health checks 25 telemetryRouter.HandleFunc("/healthz/live", func(w http.ResponseWriter, _ *http.Request) { 26 _, _ = w.Write([]byte("ok")) 27 }) 28 telemetryRouter.Handle("/healthz/ready", handler) 29 30 return telemetryRouter, healthz 31 } 32 }