flowcontrol

package
v2.34.0 Latest Latest
Warning

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

Go to latest
Published: Jan 30, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrCacheKeyEmpty is the error returned when the cache key is empty.
	ErrCacheKeyEmpty = errors.New("cache key cannot be empty")
	// ErrCacheControlPointEmpty is the error returned when the cache control point is empty.
	ErrCacheControlPointEmpty = errors.New("cache control_point cannot be empty")
	// ErrCacheNotReady is the error returned when the cache is not ready to be used.
	ErrCacheNotReady = errors.New("cache is not ready")
	// ErrCacheKeyNotFound is the error returned when the key is not found in the cache. This is copied from the internal olric package.
	ErrCacheKeyNotFound = errors.New("key not found")
)

Functions

func CacheModule added in v2.24.0

func CacheModule() fx.Option

CacheModule returns the fx options for the cache.

func EngineModule added in v2.24.0

func EngineModule() fx.Option

EngineModule returns the fx options for the engine.

func Module

func Module() fx.Option

Module returns the fx options for dataplane side pieces of policy.

func NewCache added in v2.24.0

NewCache creates a new cache.

func NewEngine

func NewEngine(agentInfo *agentinfo.AgentInfo) iface.Engine

NewEngine Main fx app.

func ProvideEngine added in v2.24.0

func ProvideEngine(cache iface.Cache, agentInfo *agentinfo.AgentInfo) iface.Engine

ProvideEngine provides the engine for the dataplane side of policy.

Types

type Cache added in v2.24.0

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

Cache for saving responses at flow end.

func (*Cache) Delete added in v2.24.0

Delete deletes the cache for the given CacheDeleteRequest.

func (*Cache) Lookup added in v2.25.0

Lookup looks up the cache for the given CacheLookupRequest.

func (*Cache) LookupGlobal added in v2.29.3

LookupGlobal looks up the global caches for the given CacheLookupRequest.

func (*Cache) LookupGlobalNoWait added in v2.29.3

LookupGlobalNoWait looks up the global caches for the given CacheLookupRequest without waiting for the result.

func (*Cache) LookupNoWait added in v2.29.3

LookupNoWait looks up the cache for the given CacheLookupRequest.

func (*Cache) LookupResult added in v2.29.3

LookupResult looks up the result cache for the given CacheLookupRequest.

func (*Cache) LookupResultNoWait added in v2.29.3

LookupResultNoWait looks up the result cache for the given CacheLookupRequest without waiting for the result.

func (*Cache) Upsert added in v2.24.0

Upsert upserts the cache for the given CacheUpsertRequest.

type Engine

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

Engine APIs to (1) Get schedulers given a service, control point and set of labels. (2) Get flux meter histogram given a metric id.

func (*Engine) FlowEnd added in v2.29.0

FlowEnd implements Engine.FlowEnd.

func (*Engine) GetAgentInfo

func (e *Engine) GetAgentInfo() *agentinfo.AgentInfo

GetAgentInfo returns the agent info.

func (*Engine) GetFlowEnder added in v2.29.0

func (e *Engine) GetFlowEnder(limiterID iface.LimiterID) iface.FlowEnder

GetFlowEnder Lookup function for getting a flow ender.

func (*Engine) GetFluxMeter

func (e *Engine) GetFluxMeter(fluxMeterName string) iface.FluxMeter

GetFluxMeter Lookup function for getting flux meter.

func (*Engine) GetRateLimiter

func (e *Engine) GetRateLimiter(limiterID iface.LimiterID) iface.Limiter

GetRateLimiter Lookup function for getting rate limiter.

func (*Engine) GetSampler added in v2.5.0

func (e *Engine) GetSampler(limiterID iface.LimiterID) iface.Limiter

GetSampler Lookup function for getting sampler.

func (*Engine) GetScheduler added in v2.2.0

func (e *Engine) GetScheduler(limiterID iface.LimiterID) iface.Scheduler

GetScheduler Lookup function for getting scheduler.

func (*Engine) ProcessRequest

func (e *Engine) ProcessRequest(ctx context.Context, requestContext iface.RequestContext) (response *flowcontrolv1.CheckResponse)

ProcessRequest implements Engine.ProcessRequest.

func (*Engine) RegisterCache added in v2.24.0

func (e *Engine) RegisterCache(cache iface.Cache)

RegisterCache .

func (*Engine) RegisterConcurrencyLimiter added in v2.29.0

func (e *Engine) RegisterConcurrencyLimiter(cl iface.ConcurrencyLimiter) error

RegisterConcurrencyLimiter adds limiter actuator to multimatcher and flow enders.

func (*Engine) RegisterConcurrencyScheduler added in v2.29.0

func (e *Engine) RegisterConcurrencyScheduler(cl iface.ConcurrencyScheduler) error

RegisterConcurrencyScheduler adds limiter actuator to multimatcher and registers the flow ender.

func (*Engine) RegisterFluxMeter

func (e *Engine) RegisterFluxMeter(fm iface.FluxMeter) error

RegisterFluxMeter adds fluxmeter to histogram map and multimatcher.

func (*Engine) RegisterLabelPreview

func (e *Engine) RegisterLabelPreview(lp iface.LabelPreview) error

RegisterLabelPreview adds label preview to multimatcher.

func (*Engine) RegisterRateLimiter

func (e *Engine) RegisterRateLimiter(rl iface.Limiter) error

RegisterRateLimiter adds limiter actuator to multimatcher.

func (*Engine) RegisterSampler added in v2.5.0

func (e *Engine) RegisterSampler(l iface.Limiter) error

RegisterSampler adds limiter actuator to multimatcher.

func (*Engine) RegisterScheduler added in v2.2.0

func (e *Engine) RegisterScheduler(cl iface.Scheduler) error

RegisterScheduler adds scheduler to multimatcher.

func (*Engine) UnregisterConcurrencyLimiter added in v2.29.0

func (e *Engine) UnregisterConcurrencyLimiter(cl iface.ConcurrencyLimiter) error

UnregisterConcurrencyLimiter removes limiter actuator from multimatcher and flow enders.

func (*Engine) UnregisterConcurrencyScheduler added in v2.29.0

func (e *Engine) UnregisterConcurrencyScheduler(cl iface.ConcurrencyScheduler) error

UnregisterConcurrencyScheduler removes limiter actuator from multimatcher and flow enders.

func (*Engine) UnregisterFluxMeter

func (e *Engine) UnregisterFluxMeter(fm iface.FluxMeter) error

UnregisterFluxMeter removes fluxmeter from histogram map and multimatcher.

func (*Engine) UnregisterLabelPreview

func (e *Engine) UnregisterLabelPreview(lp iface.LabelPreview) error

UnregisterLabelPreview removes label preview from multimatcher.

func (*Engine) UnregisterRateLimiter

func (e *Engine) UnregisterRateLimiter(rl iface.Limiter) error

UnregisterRateLimiter removes limiter actuator from multimatcher.

func (*Engine) UnregisterSampler added in v2.5.0

func (e *Engine) UnregisterSampler(rl iface.Limiter) error

UnregisterSampler removes limiter actuator from multimatcher.

func (*Engine) UnregisterScheduler added in v2.2.0

func (e *Engine) UnregisterScheduler(cl iface.Scheduler) error

UnregisterScheduler removes scheduler from multimatcher.

Directories

Path Synopsis
resources
Companion package for github.com/fluxninja/aperture/api/gen/proto/go/aperture/policy/language/v1 containing conversions of proto-generated struct into golang ones and other helpers.
Companion package for github.com/fluxninja/aperture/api/gen/proto/go/aperture/policy/language/v1 containing conversions of proto-generated struct into golang ones and other helpers.
preview/config
+kubebuilder:validation:Optional
+kubebuilder:validation:Optional

Jump to

Keyboard shortcuts

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