Documentation ¶
Overview ¶
Package admin implements an http.Server which can be used for operations and monitoring tools. It's designed to be shipped (and ran) inside an existing Go service.
Index ¶
- func Handler() http.Handler
- type Server
- func (s *Server) AddHandler(path string, hf http.HandlerFunc)
- func (s *Server) AddLivenessCheck(name string, f func() error)
- func (s *Server) AddReadinessCheck(name string, f func() error)
- func (s *Server) AddVersionHandler(version string)
- func (s *Server) BindAddr() string
- func (s *Server) Listen() error
- func (s *Server) Shutdown()
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server represents a holder around a net/http Server which is used for admin endpoints. (i.e. metrics, healthcheck)
func NewServer ¶
NewServer returns an admin Server instance that handles Prometheus metrics and pprof requests. Callers can use ':0' to bind onto a random port and call BindAddr() for the address.
func (*Server) AddHandler ¶
func (s *Server) AddHandler(path string, hf http.HandlerFunc)
AddHandler will append an http.HandlerFunc to the admin Server
func (*Server) AddLivenessCheck ¶
AddLivenessCheck will register a new health check that is executed on every HTTP request of 'GET /live' against the admin server.
Every check will timeout after 10s and return a timeout error.
These checks are designed to be unhealthy only when the application has started but a dependency is unreachable or unhealthy.
func (*Server) AddReadinessCheck ¶
AddReadinessCheck will register a new health check that is executed on every HTTP request of 'GET /ready' against the admin server.
Every check will timeout after 10s and return a timeout error.
These checks are designed to be unhealthy while the application is starting.
func (*Server) AddVersionHandler ¶
AddVersionHandler will append 'GET /version' route returning the provided version
func (*Server) BindAddr ¶
BindAddr returns the server's bind address. This is in Go's format so :8080 is valid.