Documentation ¶
Index ¶
Constants ¶
View Source
const ( // StatusClientClosedRequest is the status code for when a client request cancellation of an http request StatusClientClosedRequest = 499 ServiceTimingHeaderName = "Server-Timing" )
Variables ¶
This section is empty.
Functions ¶
func AdaptGrpcRoundTripperToHandler ¶
func AdaptGrpcRoundTripperToHandler(r GrpcRoundTripper, codec Codec) queryrangebase.Handler
func NewHandler ¶
func NewHandler(cfg HandlerConfig, roundTripper http.RoundTripper, log log.Logger, reg prometheus.Registerer, metricsNamespace string) http.Handler
NewHandler creates a new frontend handler.
Types ¶
type Codec ¶
type Codec interface { queryrangebase.Codec DecodeHTTPGrpcResponse(r *httpgrpc.HTTPResponse, req queryrangebase.Request) (queryrangebase.Response, error) QueryRequestWrap(context.Context, queryrangebase.Request) (*queryrange.QueryRequest, error) }
type GrpcRoundTripper ¶
type GrpcRoundTripper interface {
RoundTripGRPC(context.Context, *httpgrpc.HTTPRequest) (*httpgrpc.HTTPResponse, error)
}
GrpcRoundTripper is similar to http.RoundTripper, but works with HTTP requests converted to protobuf messages.
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler accepts queries and forwards them to RoundTripper. It can log slow queries, but all other logic is inside the RoundTripper.
type HandlerConfig ¶
type HandlerConfig struct { LogQueriesLongerThan time.Duration `yaml:"log_queries_longer_than"` LogQueryRequestHeaders flagext.StringSliceCSV `yaml:"log_query_request_headers"` MaxBodySize int64 `yaml:"max_body_size"` QueryStatsEnabled bool `yaml:"query_stats_enabled"` }
Config for a Handler.
func (*HandlerConfig) RegisterFlags ¶
func (cfg *HandlerConfig) RegisterFlags(f *flag.FlagSet)
Click to show internal directories.
Click to hide internal directories.