Documentation ¶
Index ¶
Constants ¶
View Source
const ( ComparisonSuccess = ComparisonResult("success") ComparisonFailed = ComparisonResult("fail") ComparisonSkipped = ComparisonResult("skip") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ComparisonResult ¶
type ComparisonResult string
type Proxy ¶
type Proxy struct {
// contains filtered or unexported fields
}
func NewProxy ¶
func NewProxy(cfg ProxyConfig, logger log.Logger, routes []Route, registerer prometheus.Registerer) (*Proxy, error)
type ProxyBackend ¶
type ProxyBackend struct {
// contains filtered or unexported fields
}
ProxyBackend holds the information of a single backend.
func (*ProxyBackend) Endpoint ¶
func (b *ProxyBackend) Endpoint() *url.URL
func (*ProxyBackend) ForwardRequest ¶
func (*ProxyBackend) Name ¶
func (b *ProxyBackend) Name() string
func (*ProxyBackend) Preferred ¶
func (b *ProxyBackend) Preferred() bool
type ProxyBackendInterface ¶
type ProxyBackendInterface interface { Name() string Endpoint() *url.URL Preferred() bool ForwardRequest(orig *http.Request, body io.ReadCloser) (time.Duration, int, []byte, *http.Response, error) }
func NewProxyBackend ¶
func NewProxyBackend(name string, endpoint *url.URL, timeout time.Duration, preferred bool, skipTLSVerify bool) ProxyBackendInterface
NewProxyBackend makes a new ProxyBackend
type ProxyConfig ¶
type ProxyConfig struct { ServerHTTPServiceAddress string ServerHTTPServicePort int ServerGRPCServiceAddress string ServerGRPCServicePort int BackendEndpoints string PreferredBackend string BackendReadTimeout time.Duration CompareResponses bool LogSlowQueryResponseThreshold time.Duration ValueComparisonTolerance float64 UseRelativeError bool PassThroughNonRegisteredRoutes bool SkipRecentSamples time.Duration BackendSkipTLSVerify bool }
func (*ProxyConfig) RegisterFlags ¶
func (cfg *ProxyConfig) RegisterFlags(f *flag.FlagSet)
type ProxyEndpoint ¶
type ProxyEndpoint struct {
// contains filtered or unexported fields
}
func NewProxyEndpoint ¶
func NewProxyEndpoint(backends []ProxyBackendInterface, routeName string, metrics *ProxyMetrics, logger log.Logger, comparator ResponsesComparator, slowResponseThreshold time.Duration) *ProxyEndpoint
func (*ProxyEndpoint) ServeHTTP ¶
func (p *ProxyEndpoint) ServeHTTP(w http.ResponseWriter, r *http.Request)
type ProxyMetrics ¶
type ProxyMetrics struct {
// contains filtered or unexported fields
}
func NewProxyMetrics ¶
func NewProxyMetrics(registerer prometheus.Registerer) *ProxyMetrics
type ResponsesComparator ¶
type ResponsesComparator interface {
Compare(expected, actual []byte) (ComparisonResult, error)
}
type Route ¶
type Route struct { Path string RouteName string Methods []string ResponseComparator ResponsesComparator }
type SampleComparisonOptions ¶
type SamplesComparator ¶
type SamplesComparator struct {
// contains filtered or unexported fields
}
func NewSamplesComparator ¶
func NewSamplesComparator(opts SampleComparisonOptions) *SamplesComparator
func (*SamplesComparator) Compare ¶
func (s *SamplesComparator) Compare(expectedResponse, actualResponse []byte) (ComparisonResult, error)
func (*SamplesComparator) RegisterSamplesType ¶
func (s *SamplesComparator) RegisterSamplesType(samplesType string, comparator SamplesComparatorFunc)
RegisterSamplesComparator helps with registering custom sample types
type SamplesComparatorFunc ¶
type SamplesComparatorFunc func(expected, actual json.RawMessage, opts SampleComparisonOptions) error
SamplesComparatorFunc helps with comparing different types of samples coming from /api/v1/query and /api/v1/query_range routes.
type SamplesResponse ¶
Click to show internal directories.
Click to hide internal directories.