Documentation ¶
Index ¶
Constants ¶
View Source
const Type = "http"
Type should match the package name
Variables ¶
View Source
var DefaultHTTPClient = &http.Client{ Transport: &http.Transport{ Proxy: http.ProxyFromEnvironment, Dial: (&net.Dialer{ Timeout: 10 * time.Second, KeepAlive: 0, }).Dial, TLSHandshakeTimeout: 5 * time.Second, ExpectContinueTimeout: 1 * time.Second, MaxIdleConnsPerHost: 1, DisableCompression: true, DisableKeepAlives: true, ResponseHeaderTimeout: 5 * time.Second, }, CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }, Timeout: 10 * time.Second, }
DefaultHTTPClient is used when no other http.Client is specified on a Checker.
Functions ¶
This section is empty.
Types ¶
type Checker ¶
type Checker struct { // Name is the name of the endpoint. Name string `json:"endpoint_name"` // URL is the URL of the endpoint. URL string `json:"endpoint_url"` // UpStatus is the HTTP status code expected by // a healthy endpoint. Default is http.StatusOK. UpStatus int `json:"up_status,omitempty"` // ThresholdRTT is the maximum round trip time to // allow for a healthy endpoint. If non-zero and a // request takes longer than ThresholdRTT, the // endpoint will be considered unhealthy. Note that // this duration includes any in-between network // latency. ThresholdRTT time.Duration `json:"threshold_rtt,omitempty"` // MustContain is a string that the response body // must contain in order to be considered up. // NOTE: If set, the entire response body will // be consumed, which has the potential of using // lots of memory and slowing down checks if the // response body is large. MustContain string `json:"must_contain,omitempty"` // MustNotContain is a string that the response // body must NOT contain in order to be considered // up. If both MustContain and MustNotContain are // set, they are and-ed together. NOTE: If set, // the entire response body will be consumed, which // has the potential of using lots of memory and // slowing down checks if the response body is large. MustNotContain string `json:"must_not_contain,omitempty"` // Attempts is how many requests the client will // make to the endpoint in a single check. Attempts int `json:"attempts,omitempty"` // AttemptSpacing spaces out each attempt in a check // by this duration to avoid hitting a remote too // quickly in succession. By default, no waiting // occurs between attempts. AttemptSpacing time.Duration `json:"attempt_spacing,omitempty"` // Client is the http.Client with which to make // requests. If not set, DefaultHTTPClient is // used. Client *http.Client `json:"-"` // Headers contains headers to added to the request // that is sent for the check Headers http.Header `json:"headers,omitempty"` }
Checker implements a Checker for HTTP endpoints.
func New ¶
func New(config json.RawMessage) (Checker, error)
New creates a new Checker instance based on json config
Click to show internal directories.
Click to hide internal directories.