in internal/healthcheck/healthcheck.go [81:111]
func (c *Check) HandleReadiness(w http.ResponseWriter, _ *http.Request) {
select {
case <-c.started:
default:
c.logger.Errorf("[Health Check] Readiness failed: %v", errNotStarted)
w.WriteHeader(http.StatusServiceUnavailable)
w.Write([]byte(errNotStarted.Error()))
return
}
select {
case <-c.stopped:
c.logger.Errorf("[Health Check] Readiness failed: %v", errStopped)
w.WriteHeader(http.StatusServiceUnavailable)
w.Write([]byte(errStopped.Error()))
return
default:
}
if open, maxCount := c.proxy.ConnCount(); maxCount > 0 && open == maxCount {
err := fmt.Errorf("max connections reached (open = %v, max = %v)", open, maxCount)
c.logger.Errorf("[Health Check] Readiness failed: %v", err)
w.WriteHeader(http.StatusServiceUnavailable)
w.Write([]byte(err.Error()))
return
}
// No error cases apply, 200 status.
w.WriteHeader(http.StatusOK)
w.Write([]byte("ok"))
}