Documentation
¶
Index ¶
- func ComponentID(component Component) string
- func ComponentIDExpanded(policyName string, componentIndex int64, policyHash string) string
- type Classifier
- type ClassifierID
- type Component
- type Engine
- type FluxMeter
- type FluxMeterID
- type Limiter
- type LimiterID
- type MultiMatchResult
- type Policy
- type RateLimiter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ComponentID ¶
ComponentID returns the ID for a component.
Types ¶
type Classifier ¶ added in v0.1.2
type Classifier interface { // GetSelector returns the selector. GetSelector() *selectorv1.Selector // GetClassifierID returns ClassifierID object that should uniquely identify classifier. GetClassifierID() ClassifierID }
Classifier interface.
type ClassifierID ¶ added in v0.1.2
ClassifierID is the ID of the Classifier.
func (ClassifierID) String ¶ added in v0.1.2
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 GetComponentIndex methods.
type Engine ¶
type Engine interface { ProcessRequest(controlPoint selectors.ControlPoint, serviceIDs []string, labels map[string]string) *flowcontrolv1.CheckResponse RegisterConcurrencyLimiter(sa Limiter) error UnregisterConcurrencyLimiter(sa Limiter) error GetConcurrencyLimiter(limiterID LimiterID) Limiter RegisterFluxMeter(fm FluxMeter) error UnregisterFluxMeter(fm FluxMeter) error GetFluxMeter(fluxMeterName string) FluxMeter RegisterRateLimiter(l RateLimiter) error UnregisterRateLimiter(l RateLimiter) error }
Engine is an interface for registering fluxmeters and schedulers.
type FluxMeter ¶
type FluxMeter interface { // GetSelector returns the selector GetSelector() *selectorv1.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 the flowcontrolv1.DecisionType GetHistogram(decisionType flowcontrolv1.CheckResponse_DecisionType, statusCode string, featureStatus string) prometheus.Observer }
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 Limiter ¶
type Limiter interface { GetPolicyName() string GetSelector() *selectorv1.Selector RunLimiter(labels map[string]string) *flowcontrolv1.LimiterDecision GetLimiterID() LimiterID GetObserver(labels map[string]string) prometheus.Observer }
Limiter interface. Lifetime of this interface is per policy/component.
type MultiMatchResult ¶
type MultiMatchResult struct { ConcurrencyLimiters []Limiter FluxMeters []FluxMeter RateLimiters []RateLimiter Classifiers []Classifier }
MultiMatchResult is used as return value of PolicyConfigAPI.GetMatches.
func (*MultiMatchResult) PopulateFromMultiMatcher ¶
func (result *MultiMatchResult) PopulateFromMultiMatcher(mm *multimatcher.MultiMatcher[string, MultiMatchResult], labels map[string]string)
PopulateFromMultiMatcher populates result object with results from MultiMatcher.