const ( PathHealth = "/health" PathProxyHealth = "/proxy/health" HealthStatusSuccess string = "success" HealthStatusError string = "error" )
const ( PathMetrics = "/metrics" PathProxyMetrics = "/proxy/metrics" )
func HandleBasic(lg *zap.Logger, mux *http.ServeMux, server etcdserver.ServerPeer)
HandleBasic adds handlers to a mux for serving JSON etcd client requests that do not access the v2 store.
func HandleHealth(lg *zap.Logger, mux *http.ServeMux, srv ServerHealth)
HandleHealth registers metrics and health handlers. it checks health by using v3 range request and its corresponding timeout.
func HandleHealthForV2(lg *zap.Logger, mux *http.ServeMux, srv etcdserver.ServerV2)
HandleHealthForV2 registers metrics and health handlers for v2.
func HandleMetrics(mux *http.ServeMux)
HandleMetrics registers prometheus handler on '/metrics'.
func NewHealthHandler(lg *zap.Logger, hfunc func(ctx context.Context, excludedAlarms StringSet, Serializable bool) Health) http.HandlerFunc
NewHealthHandler handles '/health' requests.
func NewPeerHandler(lg *zap.Logger, s etcdserver.ServerPeerV2) http.Handler
NewPeerHandler generates an http.Handler to handle etcd peer requests.
func WriteError(lg *zap.Logger, w http.ResponseWriter, r *http.Request, err error)
WriteError logs and writes the given Error to the ResponseWriter If Error is an etcdErr, it is rendered to the ResponseWriter Otherwise, it is assumed to be a StatusInternalServerError
type CheckRegistry struct {
// contains filtered or unexported fields
}
func (reg *CheckRegistry) InstallHttpEndpoints(lg *zap.Logger, mux *http.ServeMux)
func (reg *CheckRegistry) Register(name string, check HealthCheck)
func (reg *CheckRegistry) RootPath() string
Health defines etcd server health status. TODO: remove manual parsing in etcdctl cluster-health
type Health struct { Health string `json:"health"` Reason string `json:"reason"` }
type HealthCheck func(ctx context.Context) error
HealthStatus is used in new /readyz or /livez health checks instead of the Health struct.
type HealthStatus struct { Reason string `json:"reason"` Status string `json:"status"` }
type ServerHealth interface { Range(context.Context, *pb.RangeRequest) (*pb.RangeResponse, error) Config() config.ServerConfig AuthStore() auth.AuthStore // contains filtered or unexported methods }
type StringSet map[string]struct{}
func (s StringSet) List() []string