Documentation ¶
Index ¶
- func CacheTypeStrings() []string
- func ComponentKey(component Component) string
- type Cache
- type CacheType
- type ClassificationEngine
- type Classifier
- type ClassifierID
- type Component
- type ConcurrencyLimiter
- type ConcurrencyScheduler
- type Engine
- type FlowEnder
- type FluxMeter
- type FluxMeterID
- type HTTPRequestPreview
- type LabelPreview
- type Limiter
- type LimiterID
- type Policy
- type PreviewBase
- type PreviewID
- type RequestContext
- type Scheduler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CacheTypeStrings ¶ added in v2.25.0
func CacheTypeStrings() []string
CacheTypeStrings returns a slice of all String values of the enum
func ComponentKey ¶
ComponentKey returns a unique Key for a component.
Types ¶
type Cache ¶ added in v2.24.0
type Cache interface { // Lookup looks up specified keys in cache. It takes flowcontrolv1.LookupRequest and returns flowcontrolv1.LookupResponse. Lookup(ctx context.Context, request *flowcontrolv1.CacheLookupRequest) *flowcontrolv1.CacheLookupResponse // LookupWait starts lookup for specified keys in cache. It does not wait for response. It takes flowcontrolv1.LookupRequest and returns flowcontrolv1.LookupResponse and result and global wait groups. LookupWait(ctx context.Context, request *flowcontrolv1.CacheLookupRequest) (*flowcontrolv1.CacheLookupResponse, *sync.WaitGroup, *sync.WaitGroup) // Upsert inserts or updates specified cache entries. It takes flowcontrolv1.UpsertRequest and returns flowcontrolv1.UpsertResponse. Upsert(ctx context.Context, req *flowcontrolv1.CacheUpsertRequest) *flowcontrolv1.CacheUpsertResponse // Delete deletes specified keys from cache. It takes flowcontrolv1.DeleteRequest and returns flowcontrolv1.DeleteResponse. Delete(ctx context.Context, req *flowcontrolv1.CacheDeleteRequest) *flowcontrolv1.CacheDeleteResponse }
Cache is an interface for the cache.
type CacheType ¶ added in v2.25.0
type CacheType int
CacheType is the type of cache.
func CacheTypeString ¶ added in v2.25.0
CacheTypeString retrieves an enum value from the enum constants string name. Throws an error if the param is not part of the enum.
func CacheTypeValues ¶ added in v2.25.0
func CacheTypeValues() []CacheType
CacheTypeValues returns all values of the enum
func (CacheType) IsACacheType ¶ added in v2.25.0
IsACacheType returns "true" if the value is listed in the enum definition. "false" otherwise
type ClassificationEngine ¶
type ClassificationEngine interface { RegisterClassifier(classifier Classifier) error UnregisterClassifier(classifier Classifier) error GetClassifier(classifierID ClassifierID) Classifier }
ClassificationEngine is the interface for registering classifiers.
type Classifier ¶
type Classifier interface { // GetSelectors returns the selectors. GetSelectors() []*policylangv1.Selector // GetClassifierID returns ClassifierID object that should uniquely identify classifier. GetClassifierID() ClassifierID // GetRequestCounter returns the counter for the classifier. GetRequestCounter() prometheus.Counter }
Classifier interface.
type ClassifierID ¶
ClassifierID is the ID of the Classifier.
func (ClassifierID) String ¶
func (cID ClassifierID) String() string
String function returns the ClassifierID as a string.
type Component ¶
Component is the interface that wraps the GetPolicyName, GetPolicyHash, and GetComponentID methods.
type ConcurrencyLimiter ¶ added in v2.29.0
ConcurrencyLimiter interface.
type ConcurrencyScheduler ¶ added in v2.29.0
ConcurrencyScheduler interface.
type Engine ¶
type Engine interface { ProcessRequest( ctx context.Context, requestContext RequestContext, ) *flowcontrolv1.CheckResponse GetAgentInfo() *agentinfo.AgentInfo RegisterScheduler(ls Scheduler) error UnregisterScheduler(ls Scheduler) error GetScheduler(limiterID LimiterID) Scheduler RegisterFluxMeter(fm FluxMeter) error UnregisterFluxMeter(fm FluxMeter) error GetFluxMeter(fluxMeterName string) FluxMeter RegisterRateLimiter(l Limiter) error UnregisterRateLimiter(l Limiter) error GetRateLimiter(limiterID LimiterID) Limiter RegisterSampler(l Limiter) error UnregisterSampler(l Limiter) error GetSampler(limiterID LimiterID) Limiter RegisterLabelPreview(l LabelPreview) error UnregisterLabelPreview(l LabelPreview) error RegisterCache(c Cache) RegisterConcurrencyLimiter(l ConcurrencyLimiter) error UnregisterConcurrencyLimiter(l ConcurrencyLimiter) error RegisterConcurrencyScheduler(l ConcurrencyScheduler) error UnregisterConcurrencyScheduler(l ConcurrencyScheduler) error GetFlowEnder(limiterID LimiterID) FlowEnder FlowEnd( ctx context.Context, request *flowcontrolv1.FlowEndRequest, ) *flowcontrolv1.FlowEndResponse }
Engine is an interface for registering fluxmeters and schedulers.
type FlowEnder ¶ added in v2.29.0
type FlowEnder interface {
Return(ctx context.Context, label string, tokens float64, requestID string) (bool, error)
}
FlowEnder interface.
type FluxMeter ¶
type FluxMeter interface { // GetSelectors returns the selectors GetSelectors() []*policylangv1.Selector // GetAttributeKey returns the attribute key GetAttributeKey() string // GetFluxMeterName returns the metric name GetFluxMeterName() string // GetFluxMeterID returns the flux meter ID GetFluxMeterID() FluxMeterID // GetHistogram returns the histogram observer for given labels. // It expects the following labels to be set: // * metrics.DecisionTypeLabel, // * metrics.ResponseStatusLabel, // * metrics.StatusCodeLabel, // * metrics.FeatureStatusLabel. GetHistogram(labels map[string]string) prometheus.Observer // GetInvalidFluxMeterTotal returns a counter metric for the total number of invalid flux meters with the specified labels. GetInvalidFluxMeterTotal(labels map[string]string) (prometheus.Counter, error) }
FluxMeter in an interface for interacting with fluxmeters.
type FluxMeterID ¶
type FluxMeterID struct {
FluxMeterName string
}
FluxMeterID is the ID of the FluxMeter.
func (FluxMeterID) String ¶
func (fmID FluxMeterID) String() string
String function returns the FluxMeterID as a string.
type HTTPRequestPreview ¶
type HTTPRequestPreview interface { PreviewBase // AddHTTPRequestPreview adds labels to preview. AddHTTPRequestPreview(request map[string]interface{}) }
HTTPRequestPreview interface.
type LabelPreview ¶
type LabelPreview interface { PreviewBase // AddLabelPreview adds labels to preview. AddLabelPreview(labels map[string]string) }
LabelPreview interface.
type Limiter ¶
type Limiter interface { GetPolicyName() string GetSelectors() []*policylangv1.Selector Decide(context.Context, labels.Labels) *flowcontrolv1.LimiterDecision Revert(context.Context, labels.Labels, *flowcontrolv1.LimiterDecision) GetLimiterID() LimiterID GetRequestCounter(labels map[string]string) prometheus.Counter GetRampMode() bool }
Limiter interface. Lifetime of this interface is per policy/component.
type PreviewBase ¶
type PreviewBase interface { // GetPreviewID returns the ID of the preview. GetPreviewID() PreviewID // GetSelectors returns the selectors. GetSelectors() []*policylangv1.Selector }
PreviewBase is the base interface for all preview requests.
type RequestContext ¶
type RequestContext struct { FlowLabels labels.Labels ControlPoint string CacheLookupRequest *flowcontrolv1.CacheLookupRequest Services []string RampMode bool ExpectEnd bool }
RequestContext provides the request parameters for the Check method.