Documentation ¶
Index ¶
- Constants
- func GetEndpoint(ctx context.Context) (*route.Endpoint, error)
- func IsTcpUpgrade(request *http.Request) bool
- func IsWebSocketUpgrade(request *http.Request) bool
- func NewAccessLog(accessLogger accesslog.AccessLogger, extraHeadersToLog []string, ...) negroni.Handler
- func NewClientCert(skipSanitization, forceDeleteHeader func(req *http.Request) (bool, error), ...) negroni.Handler
- func NewHTTPStartStop(emitter dropsonde.EventEmitter, logger logger.Logger) negroni.Handler
- func NewHealthcheck(heartbeatOK *int32, logger logger.Logger) http.Handler
- func NewLookup(registry registry.Registry, rep metrics.ProxyReporter, logger logger.Logger) negroni.Handler
- func NewProtocolCheck(logger logger.Logger) negroni.Handler
- func NewProxyHealthcheck(userAgent string, heartbeatOK *int32, logger logger.Logger) negroni.Handler
- func NewProxyWriter(logger logger.Logger) negroni.Handler
- func NewReporter(reporter metrics.ProxyReporter, logger logger.Logger) negroni.Handler
- func NewRequestInfo() negroni.Handler
- func NewRouteService(config *routeservice.RouteServiceConfig, routeRegistry registry.Registry, ...) negroni.Handler
- func NewVcapRequestIdHeader(logger logger.Logger) negroni.Handler
- type RequestInfo
- type RequestInfoHandler
- type RouteService
- type XForwardedProto
- type Zipkin
Constants ¶
const ( CfInstanceIdHeader = "X-CF-InstanceID" CfAppInstance = "X-CF-APP-INSTANCE" )
const ( B3TraceIdHeader = "X-B3-TraceId" B3SpanIdHeader = "X-B3-SpanId" B3ParentSpanIdHeader = "X-B3-ParentSpanId" )
const (
VcapRequestIdHeader = "X-Vcap-Request-Id"
)
Variables ¶
This section is empty.
Functions ¶
func IsTcpUpgrade ¶
func IsWebSocketUpgrade ¶
func NewAccessLog ¶
func NewAccessLog( accessLogger accesslog.AccessLogger, extraHeadersToLog []string, logger logger.Logger, ) negroni.Handler
NewAccessLog creates a new handler that handles logging requests to the access log
func NewClientCert ¶
func NewHTTPStartStop ¶
NewHTTPStartStop creates a new handler that handles emitting frontent HTTP StartStop events
func NewLookup ¶
func NewLookup(registry registry.Registry, rep metrics.ProxyReporter, logger logger.Logger) negroni.Handler
NewLookup creates a handler responsible for looking up a route.
func NewProtocolCheck ¶
NewProtocolCheck creates a handler responsible for checking the protocol of the request
func NewProxyHealthcheck ¶
func NewProxyHealthcheck(userAgent string, heartbeatOK *int32, logger logger.Logger) negroni.Handler
NewHealthcheck creates a handler that responds to healthcheck requests. If userAgent is set to a non-empty string, it will use that user agent to differentiate between healthcheck requests and non-healthcheck requests. Otherwise, it will treat all requests as healthcheck requests.
func NewProxyWriter ¶
NewProxyWriter creates a handler responsible for setting a proxy responseWriter on the request and response
func NewReporter ¶
NewReporter creates a new handler that handles reporting backend responses to metrics
func NewRequestInfo ¶
NewRequestInfo creates a RequestInfoHandler
func NewRouteService ¶
func NewRouteService(config *routeservice.RouteServiceConfig, routeRegistry registry.Registry, logger logger.Logger) negroni.Handler
NewRouteService creates a handler responsible for handling route services
Types ¶
type RequestInfo ¶
type RequestInfo struct {
StartedAt, StoppedAt time.Time
RoutePool *route.Pool
RouteEndpoint *route.Endpoint
ProxyResponseWriter utils.ProxyResponseWriter
RouteServiceURL *url.URL
IsInternalRouteService bool
BackendReqHeaders http.Header
}
RequestInfo stores all metadata about the request and is used to pass informaton between handlers
func ContextRequestInfo ¶
func ContextRequestInfo(req *http.Request) (*RequestInfo, error)
ContextRequestInfo gets the RequestInfo from the request Context
type RequestInfoHandler ¶
type RequestInfoHandler struct{}
RequestInfoHandler adds a RequestInfo to the context of all requests that go through this handler
func (*RequestInfoHandler) ServeHTTP ¶
func (r *RequestInfoHandler) ServeHTTP(w http.ResponseWriter, req *http.Request, next http.HandlerFunc)
type RouteService ¶
type RouteService struct {
// contains filtered or unexported fields
}
func (*RouteService) ArrivedViaRouteService ¶
func (r *RouteService) ArrivedViaRouteService(req *http.Request) (bool, error)
func (*RouteService) ServeHTTP ¶
func (r *RouteService) ServeHTTP(rw http.ResponseWriter, req *http.Request, next http.HandlerFunc)
type XForwardedProto ¶
type XForwardedProto struct { SkipSanitization func(req *http.Request) (bool, error) ForceForwardedProtoHttps bool SanitizeForwardedProto bool Logger logger.Logger }
func (*XForwardedProto) ServeHTTP ¶
func (h *XForwardedProto) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)
type Zipkin ¶
type Zipkin struct {
// contains filtered or unexported fields
}
Zipkin is a handler that sets Zipkin headers on requests
func (*Zipkin) HeadersToLog ¶
HeadersToLog returns headers that should be logged in the access logs and includes Zipkin headers in this set if necessary
func (*Zipkin) ServeHTTP ¶
func (z *Zipkin) ServeHTTP(rw http.ResponseWriter, r *http.Request, next http.HandlerFunc)