querytee

package
v0.0.0-...-cae4bf4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 24, 2020 License: Apache-2.0, Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type InstrumentationServer

type InstrumentationServer struct {
	// contains filtered or unexported fields
}

func NewInstrumentationServer

func NewInstrumentationServer(port int, registry *prometheus.Registry) *InstrumentationServer

NewInstrumentationServer returns a server exposing Prometheus metrics.

func (*InstrumentationServer) Start

func (s *InstrumentationServer) Start() error

Start the instrumentation server.

func (*InstrumentationServer) Stop

func (s *InstrumentationServer) Stop()

Stop closes the instrumentation server.

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)

func (*Proxy) Await

func (p *Proxy) Await()

func (*Proxy) Endpoint

func (p *Proxy) Endpoint() string

func (*Proxy) Start

func (p *Proxy) Start() error

func (*Proxy) Stop

func (p *Proxy) Stop() error

type ProxyBackend

type ProxyBackend struct {
	// contains filtered or unexported fields
}

ProxyBackend holds the information of a single backend.

func NewProxyBackend

func NewProxyBackend(name string, endpoint *url.URL, timeout time.Duration, preferred bool) *ProxyBackend

NewProxyBackend makes a new ProxyBackend

func (*ProxyBackend) ForwardRequest

func (b *ProxyBackend) ForwardRequest(orig *http.Request) (int, []byte, error)

type ProxyConfig

type ProxyConfig struct {
	ServerServicePort  int
	BackendEndpoints   string
	PreferredBackend   string
	BackendReadTimeout time.Duration
	CompareResponses   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 []*ProxyBackend, routeName string, metrics *ProxyMetrics, logger log.Logger, comparator ResponsesComparator) *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) error
}

type Route

type Route struct {
	Path               string
	RouteName          string
	Methods            []string
	ResponseComparator ResponsesComparator
}

type SamplesComparator

type SamplesComparator struct {
	// contains filtered or unexported fields
}

func NewSamplesComparator

func NewSamplesComparator() *SamplesComparator

func (*SamplesComparator) Compare

func (s *SamplesComparator) Compare(expectedResponse, actualResponse []byte) 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) error

SamplesComparatorFunc helps with comparing different types of samples coming from /api/v1/query and /api/v1/query_range routes.

type SamplesResponse

type SamplesResponse struct {
	Status string
	Data   struct {
		ResultType string
		Result     json.RawMessage
	}
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL