Documentation ¶
Index ¶
- func Decorate(roundTripper http.RoundTripper, decorators ...Decorator) http.RoundTripper
- func DecorateRoundTripper(conf config.Client, accesslog log.Logger, healthCheckEndpoint string, ...) http.RoundTripper
- func NewHandlerWithRoundTripper(roundTripper http.RoundTripper, servConfig config.Server) (http.Handler, error)
- func OptionsHandler(roundTripper http.RoundTripper) http.RoundTripper
- type AccessMessageData
- type Decorator
- type Handler
- type SyncLogMessageData
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Decorate ¶
func Decorate(roundTripper http.RoundTripper, decorators ...Decorator) http.RoundTripper
Decorate returns http.Roundtripper wraped with all passed decorators
func DecorateRoundTripper ¶
func DecorateRoundTripper(conf config.Client, accesslog log.Logger, healthCheckEndpoint string, rt http.RoundTripper) http.RoundTripper
DecorateRoundTripper applies common http.RoundTripper decorators
func NewHandlerWithRoundTripper ¶
func NewHandlerWithRoundTripper(roundTripper http.RoundTripper, servConfig config.Server) (http.Handler, error)
NewHandlerWithRoundTripper returns Handler, but will not construct transport.MultiTransport by itself
func OptionsHandler ¶
func OptionsHandler(roundTripper http.RoundTripper) http.RoundTripper
OptionsHandler changes OPTIONS method it to HEAD and pass it to decorated http.RoundTripper, also clears response content-length header
Types ¶
type AccessMessageData ¶
type AccessMessageData struct { Method string `json:"method"` Host string `json:"host"` Path string `json:"path"` UserAgent string `json:"useragent"` StatusCode int `json:"status"` Duration float64 `json:"duration_ms"` RespErr string `json:"error"` ReqID string `json:"reqID"` Time string `json:"ts"` }
AccessMessageData holds all important informations about http roundtrip
func NewAccessLogMessage ¶
func NewAccessLogMessage(req http.Request, statusCode int, duration float64, respErr string) *AccessMessageData
NewAccessLogMessage creates new AccessMessageData
func ScanCSVAccessLogMessage ¶
func ScanCSVAccessLogMessage(csvstr string) (AccessMessageData, error)
ScanCSVAccessLogMessage will scan csv string and return AccessMessageData. Returns fmt.SScanf error if matching failed
func (AccessMessageData) String ¶
func (amd AccessMessageData) String() string
String produces data in csv format with fields in following order: Method, Host, Path, UserAgent, StatusCode, Duration, RespErr)
type Decorator ¶
type Decorator func(http.RoundTripper) http.RoundTripper
Decorator is http.RoundTripper interface wrapper
func AccessLogging ¶
AccessLogging creares Decorator with access log collector
func HeadersSuplier ¶
func HeadersSuplier(requestHeaders, responseHeaders config.AdditionalHeaders) Decorator
HeadersSuplier creates Decorator which adds headers to request and response
func HealthCheckHandler ¶
HealthCheckHandler serving health check endpoint
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler implements http.Handler interface
type SyncLogMessageData ¶
type SyncLogMessageData struct { Method string `json:"method"` FailedHost string `json:"failedhost"` Path string `json:"path"` SuccessHost string `json:"successhost"` UserAgent string `json:"useragent"` // ContentLength if negative means no content length header provided ContentLength int64 `json:"content-length"` AccessKey string `json:"access-key"` ErrorMsg string `json:"error"` ReqID string `json:"reqID"` Time string `json:"ts"` }
SyncLogMessageData holds all important informations about replication errors
func (SyncLogMessageData) String ¶
func (slmd SyncLogMessageData) String() string
String produces data in csv format with fields in following order: Method, Host, Path, UserAgent, StatusCode, Duration, RespErr)