Documentation
¶
Index ¶
- Variables
- func MergeFetchResponses(m1, m2 *protov3.FetchResponse) merry.Error
- func NoAnswerBackends(backends []BackendServer, answered map[string]struct{}) []string
- func ReturnNonNotFoundError(errors []merry.Error) []merry.Error
- type BackendServer
- type BackendV2
- type BackendsV2
- type CapabilityRequestV3
- type CarbonSearch
- type CarbonSearchV2
- type Fetcher
- type LBMethod
- type MultiFetchRequestV3
- type MultiGlobRequestV3
- type MultiMetricsInfoV3
- type Request
- type ServerFetchResponse
- func (s *ServerFetchResponse) AddError(err merry.Error)
- func (first *ServerFetchResponse) Errors() []merry.Error
- func (s ServerFetchResponse) GetServer() string
- func (first *ServerFetchResponse) Merge(second *ServerFetchResponse) merry.Error
- func (first *ServerFetchResponse) MergeI(second ServerFetcherResponse) merry.Error
- func (s *ServerFetchResponse) NonFatalError(err merry.Error) *ServerFetchResponse
- func (s *ServerFetchResponse) Self() interface{}
- type ServerFetcherResponse
- type ServerFindResponse
- func (s *ServerFindResponse) AddError(err merry.Error)
- func (first *ServerFindResponse) Errors() []merry.Error
- func (s ServerFindResponse) GetServer() string
- func (first *ServerFindResponse) Merge(second *ServerFindResponse) merry.Error
- func (first *ServerFindResponse) MergeI(second ServerFetcherResponse) merry.Error
- func (s *ServerFindResponse) Self() interface{}
- type ServerInfoResponse
- func (s *ServerInfoResponse) AddError(err merry.Error)
- func (first *ServerInfoResponse) Errors() []merry.Error
- func (s ServerInfoResponse) GetServer() string
- func (first *ServerInfoResponse) Merge(second *ServerInfoResponse) merry.Error
- func (first *ServerInfoResponse) MergeI(second ServerFetcherResponse) merry.Error
- func (s *ServerInfoResponse) Self() interface{}
- type ServerResponse
- type ServerTagResponse
- func (s *ServerTagResponse) AddError(err merry.Error)
- func (first *ServerTagResponse) Errors() []merry.Error
- func (s ServerTagResponse) GetServer() string
- func (first *ServerTagResponse) Merge(second *ServerTagResponse) merry.Error
- func (first *ServerTagResponse) MergeI(second ServerFetcherResponse) merry.Error
- func (s *ServerTagResponse) Self() interface{}
- type Stats
- type Timeouts
Constants ¶
This section is empty.
Variables ¶
View Source
var EmptyMsg = &empty.Empty{}
View Source
var ErrBackendError = merry.New("error fetching data from backend").WithHTTPCode(http.StatusServiceUnavailable)
View Source
var ErrConcurrencyLimitNotSet = merry.New("concurrency limit is not set")
View Source
var ErrFailed = merry.New("failed due to error")
View Source
var ErrFailedToFetch = merry.New("failed to fetch data from server/group")
View Source
var ErrForbidden = merry.New("forbidden").WithHTTPCode(http.StatusForbidden)
View Source
var ErrMaxTriesExceeded = merry.New("max tries exceeded")
View Source
var ErrNoMetricsFetched = merry.New("no metrics in the Response").WithHTTPCode(http.StatusNotFound)
View Source
var ErrNoRequests = merry.New("no requests to fetch")
View Source
var ErrNoResponseFetched = merry.New("no responses fetched from upstream")
View Source
var ErrNoServersSpecified = merry.New("no servers specified")
View Source
var ErrNoTagSpecified = merry.New("no tag specified")
View Source
var ErrNonFatalErrors = merry.New("response contains non-fatal errors")
View Source
var ErrNotFound = merry.New("metric not found")
View Source
var ErrNotImplementedYet = merry.New("this feature is not implemented yet")
View Source
var ErrNotSupportedByBackend = merry.New("this feature is not supported by backend")
View Source
var ErrResponceError = merry.New("error while fetching Response")
View Source
var ErrResponseLengthMismatch = merry.New("response length mismatch")
View Source
var ErrResponseStartTimeMismatch = merry.New("response start time mismatch")
View Source
var ErrResponseStepTimeMismatch = merry.New("response step time mismatch")
View Source
var ErrResponseTypeMismatch = merry.New("type for the response doesn't match what's expected")
View Source
var ErrTimeoutExceeded = merry.New("timeout while fetching Response").WithHTTPCode(http.StatusGatewayTimeout)
View Source
var ErrUnknownLBMethodFmt = "unknown lb method: '%v', supported: %v"
View Source
var ErrUnmarshalFailed = merry.New("unmarshal failed")
Functions ¶
func MergeFetchResponses ¶
func MergeFetchResponses(m1, m2 *protov3.FetchResponse) merry.Error
func NoAnswerBackends ¶
func NoAnswerBackends(backends []BackendServer, answered map[string]struct{}) []string
Types ¶
type BackendServer ¶
type BackendServer interface {
Name() string
Backends() []string
MaxMetricsPerRequest() int
Fetch(ctx context.Context, request *protov3.MultiFetchRequest) (*protov3.MultiFetchResponse, *Stats, merry.Error)
Find(ctx context.Context, request *protov3.MultiGlobRequest) (*protov3.MultiGlobResponse, *Stats, merry.Error)
Info(ctx context.Context, request *protov3.MultiMetricsInfoRequest) (*protov3.ZipperInfoResponse, *Stats, merry.Error)
List(ctx context.Context) (*protov3.ListMetricsResponse, *Stats, merry.Error)
Stats(ctx context.Context) (*protov3.MetricDetailsResponse, *Stats, merry.Error)
ProbeTLDs(ctx context.Context) ([]string, merry.Error)
TagNames(ctx context.Context, query string, limit int64) ([]string, merry.Error)
TagValues(ctx context.Context, query string, limit int64) ([]string, merry.Error)
Children() []BackendServer
}
type BackendV2 ¶
type BackendV2 struct {
GroupName string `mapstructure:"groupName"`
Protocol string `mapstructure:"protocol"`
LBMethod string `mapstructure:"lbMethod"` // Valid: rr/roundrobin, broadcast/all
Servers []string `mapstructure:"servers"`
Timeouts *Timeouts `mapstructure:"timeouts"`
ConcurrencyLimit *int `mapstructure:"concurrencyLimit"`
KeepAliveInterval *time.Duration `mapstructure:"keepAliveInterval"`
MaxIdleConnsPerHost *int `mapstructure:"maxIdleConnsPerHost"`
MaxTries *int `mapstructure:"maxTries"`
MaxBatchSize *int `mapstructure:"maxBatchSize"`
BackendOptions map[string]interface{} `mapstructure:"backendOptions"`
ForceAttemptHTTP2 bool `mapstructure:"forceAttemptHTTP2"`
DoMultipleRequestsIfSplit bool `mapstructure:"doMultipleRequestsIfSplit"`
}
func (*BackendV2) FillDefaults ¶
func (b *BackendV2) FillDefaults()
type BackendsV2 ¶
type BackendsV2 struct {
Backends []BackendV2 `mapstructure:"backends"`
MaxIdleConnsPerHost int `mapstructure:"maxIdleConnsPerHost"`
ConcurrencyLimitPerServer int `mapstructure:"concurrencyLimit"`
Timeouts Timeouts `mapstructure:"timeouts"`
KeepAliveInterval time.Duration `mapstructure:"keepAliveInterval"`
MaxTries int `mapstructure:"maxTries"`
MaxBatchSize *int `mapstructure:"maxBatchSize"`
}
type CapabilityRequestV3 ¶
type CapabilityRequestV3 struct {
protov3.CapabilityRequest
}
func (CapabilityRequestV3) LogInfo ¶
func (request CapabilityRequestV3) LogInfo() interface{}
type CarbonSearch ¶
type CarbonSearch struct {
Backend string `mapstructure:"backend"`
Prefix string `mapstructure:"prefix"`
}
CarbonSearch is a structure that contains carbonsearch related configuration bits
type CarbonSearchV2 ¶
type CarbonSearchV2 struct {
BackendsV2
Prefix string `mapstructure:"prefix"`
}
type Fetcher ¶
type Fetcher func(ctx context.Context, logger *zap.Logger, client BackendServer, reqs interface{}, resCh chan ServerFetcherResponse)
type Fetcher func(ctx context.Context, logger *zap.Logger, client types.BackendServer, reqs interface{}, resCh chan<- types.ServerFetchResponse) { type Fetcher func(ctx context.Context, logger *zap.Logger, client BackendServer, reqs interface{}, resCh chan ServerFetchResponse) {
type LBMethod ¶
type LBMethod int
func (*LBMethod) FromString ¶
func (LBMethod) MarshalJSON ¶
func (*LBMethod) UnmarshalJSON ¶
func (*LBMethod) UnmarshalYAML ¶
type MultiFetchRequestV3 ¶
type MultiFetchRequestV3 struct {
protov3.MultiFetchRequest
}
func (MultiFetchRequestV3) LogInfo ¶
func (request MultiFetchRequestV3) LogInfo() interface{}
type MultiGlobRequestV3 ¶
type MultiGlobRequestV3 struct {
protov3.MultiGlobRequest
}
func (MultiGlobRequestV3) LogInfo ¶
func (request MultiGlobRequestV3) LogInfo() interface{}
type MultiMetricsInfoV3 ¶
type MultiMetricsInfoV3 struct {
protov3.MultiMetricsInfoRequest
}
func (MultiMetricsInfoV3) LogInfo ¶
func (request MultiMetricsInfoV3) LogInfo() interface{}
type ServerFetchResponse ¶
type ServerFetchResponse struct {
Server string
Response *protov3.MultiFetchResponse
Stats *Stats
Err []merry.Error
}
func NewServerFetchResponse ¶
func NewServerFetchResponse() *ServerFetchResponse
func (*ServerFetchResponse) AddError ¶
func (s *ServerFetchResponse) AddError(err merry.Error)
func (*ServerFetchResponse) Errors ¶
func (first *ServerFetchResponse) Errors() []merry.Error
func (ServerFetchResponse) GetServer ¶
func (s ServerFetchResponse) GetServer() string
func (*ServerFetchResponse) Merge ¶
func (first *ServerFetchResponse) Merge(second *ServerFetchResponse) merry.Error
func (*ServerFetchResponse) MergeI ¶
func (first *ServerFetchResponse) MergeI(second ServerFetcherResponse) merry.Error
func (*ServerFetchResponse) NonFatalError ¶
func (s *ServerFetchResponse) NonFatalError(err merry.Error) *ServerFetchResponse
func (*ServerFetchResponse) Self ¶
func (s *ServerFetchResponse) Self() interface{}
type ServerFetcherResponse ¶
type ServerFetcherResponse interface {
Self() interface{}
MergeI(second ServerFetcherResponse) merry.Error
AddError(err merry.Error)
Errors() []merry.Error
GetServer() string
}
func DoRequest ¶
func DoRequest(ctx context.Context, logger *zap.Logger, clients []BackendServer, result ServerFetcherResponse, request interface{}, fetcher Fetcher) (ServerFetcherResponse, int)
Helper function
type ServerFindResponse ¶
type ServerFindResponse struct {
Server string
Response *protov3.MultiGlobResponse
Stats *Stats
Err []merry.Error
}
func NewServerFindResponse ¶
func NewServerFindResponse() *ServerFindResponse
func (*ServerFindResponse) AddError ¶
func (s *ServerFindResponse) AddError(err merry.Error)
func (*ServerFindResponse) Errors ¶
func (first *ServerFindResponse) Errors() []merry.Error
func (ServerFindResponse) GetServer ¶
func (s ServerFindResponse) GetServer() string
func (*ServerFindResponse) Merge ¶
func (first *ServerFindResponse) Merge(second *ServerFindResponse) merry.Error
func (*ServerFindResponse) MergeI ¶
func (first *ServerFindResponse) MergeI(second ServerFetcherResponse) merry.Error
func (*ServerFindResponse) Self ¶
func (s *ServerFindResponse) Self() interface{}
type ServerInfoResponse ¶
type ServerInfoResponse struct {
Server string
Response *protov3.ZipperInfoResponse
Stats *Stats
Err []merry.Error
}
func NewServerInfoResponse ¶
func NewServerInfoResponse() *ServerInfoResponse
func (*ServerInfoResponse) AddError ¶
func (s *ServerInfoResponse) AddError(err merry.Error)
func (*ServerInfoResponse) Errors ¶
func (first *ServerInfoResponse) Errors() []merry.Error
func (ServerInfoResponse) GetServer ¶
func (s ServerInfoResponse) GetServer() string
func (*ServerInfoResponse) Merge ¶
func (first *ServerInfoResponse) Merge(second *ServerInfoResponse) merry.Error
func (*ServerInfoResponse) MergeI ¶
func (first *ServerInfoResponse) MergeI(second ServerFetcherResponse) merry.Error
func (*ServerInfoResponse) Self ¶
func (s *ServerInfoResponse) Self() interface{}
type ServerResponse ¶
type ServerTagResponse ¶
func NewServerTagResponse ¶
func NewServerTagResponse() *ServerTagResponse
func (*ServerTagResponse) AddError ¶
func (s *ServerTagResponse) AddError(err merry.Error)
func (*ServerTagResponse) Errors ¶
func (first *ServerTagResponse) Errors() []merry.Error
func (ServerTagResponse) GetServer ¶
func (s ServerTagResponse) GetServer() string
func (*ServerTagResponse) Merge ¶
func (first *ServerTagResponse) Merge(second *ServerTagResponse) merry.Error
func (*ServerTagResponse) MergeI ¶
func (first *ServerTagResponse) MergeI(second ServerFetcherResponse) merry.Error
func (*ServerTagResponse) Self ¶
func (s *ServerTagResponse) Self() interface{}
type Stats ¶
type Stats struct {
Timeouts int64
FindRequests int64
FindErrors int64
FindTimeouts int64
RenderRequests int64
RenderErrors int64
RenderTimeouts int64
InfoRequests int64
InfoErrors int64
InfoTimeouts int64
SearchRequests int64
SearchCacheHits int64
SearchCacheMisses int64
ZipperRequests int64
TotalMetricsCount int64
MemoryUsage int64
CacheMisses int64
CacheHits int64
Servers []string
FailedServers []string
}
Stats provides zipper-related statistics
Click to show internal directories.
Click to hide internal directories.