Documentation

Overview

    Package healthx providers helpers for returning health status information via HTTP.

    Index

    Constants

    View Source
    const (
    	// AliveCheckPath is the path where information about the life state of the instance is provided.
    	AliveCheckPath = "/health/alive"
    	// ReadyCheckPath is the path where information about the rady state of the instance is provided.
    	ReadyCheckPath = "/health/ready"
    	// VersionPath is the path where information about the software version of the instance is provided.
    	VersionPath = "/version"
    )

    Variables

    This section is empty.

    Functions

    func NoopReadyChecker

    func NoopReadyChecker() error

      NoopReadyChecker is always ready.

      func RoutesToObserve

      func RoutesToObserve() []string

        RoutesToObserve returns a string of all the available routes of this module.

        Types

        type Handler

        type Handler struct {
        	H             herodot.Writer
        	VersionString string
        	ReadyChecks   ReadyCheckers
        }

          Handler handles HTTP requests to health and version endpoints.

          func NewHandler

          func NewHandler(
          	h herodot.Writer,
          	version string,
          	readyChecks ReadyCheckers,
          ) *Handler

            NewHandler instantiates a handler.

            func (*Handler) Alive

            func (h *Handler) Alive(rw http.ResponseWriter, r *http.Request, _ httprouter.Params)

            Alive returns an ok status if the instance is ready to handle HTTP requests.

            swagger:route GET /health/alive health isInstanceAlive

            Check alive status

            This endpoint returns a 200 status code when the HTTP server is up running. This status does currently not include checks whether the database connection is working.

            If the service supports TLS Edge Termination, this endpoint does not require the `X-Forwarded-Proto` header to be set.

            Be aware that if you are running multiple nodes of this service, the health status will never refer to the cluster state, only to a single instance.

            Produces:
            - application/json
            
            Responses:
              200: healthStatus
              500: genericError
            

            func (*Handler) Ready

            func (h *Handler) Ready(shareErrors bool) httprouter.Handle

            Ready returns an ok status if the instance is ready to handle HTTP requests and all ReadyCheckers are ok.

            swagger:route GET /health/ready health isInstanceReady

            Check readiness status

            This endpoint returns a 200 status code when the HTTP server is up running and the environment dependencies (e.g. the database) are responsive as well.

            If the service supports TLS Edge Termination, this endpoint does not require the `X-Forwarded-Proto` header to be set.

            Be aware that if you are running multiple nodes of this service, the health status will never refer to the cluster state, only to a single instance.

            Produces:
            - application/json
            
            Responses:
              200: healthStatus
              503: healthNotReadyStatus
            

            func (*Handler) SetRoutes

            func (h *Handler) SetRoutes(r *httprouter.Router, shareErrors bool)

              SetRoutes registers this handler's routes.

              func (*Handler) Version

              func (h *Handler) Version(rw http.ResponseWriter, r *http.Request, _ httprouter.Params)

              Version returns this service's versions.

              swagger:route GET /version version getVersion

              Get service version

              This endpoint returns the service version typically notated using semantic versioning.

              If the service supports TLS Edge Termination, this endpoint does not require the `X-Forwarded-Proto` header to be set.

              Be aware that if you are running multiple nodes of this service, the health status will never refer to the cluster state, only to a single instance.

                  Produces:
                  - application/json
              
              	   Responses:
              			200: version
              

              type ReadyChecker

              type ReadyChecker func(r *http.Request) error

                ReadyChecker should return an error if the component is not ready yet.

                type ReadyCheckers

                type ReadyCheckers map[string]ReadyChecker

                  ReadyCheckers is a map of ReadyCheckers.

                  Source Files