Versions in this module Expand all Collapse all v0 v0.0.4 Sep 14, 2020 Changes in this version + func ClearRules() error + func IsValidRule(rule *Rule) error + func LoadRules(rules []*Rule) (bool, error) + func RemoveTrafficShapingGenerator(tokenCalculateStrategy TokenCalculateStrategy, controlBehavior ControlBehavior) error + func SetTrafficShapingGenerator(tokenCalculateStrategy TokenCalculateStrategy, controlBehavior ControlBehavior, ...) error + type ControlBehavior int32 + const Reject + const Throttling + func (s ControlBehavior) String() string + type DefaultTrafficShapingChecker struct + func NewDefaultTrafficShapingChecker(rule *Rule) *DefaultTrafficShapingChecker + func (d *DefaultTrafficShapingChecker) DoCheck(node base.StatNode, acquireCount uint32, threshold float64) *base.TokenResult + type DirectTrafficShapingCalculator struct + func NewDirectTrafficShapingCalculator(threshold float64) *DirectTrafficShapingCalculator + func (d *DirectTrafficShapingCalculator) CalculateAllowedTokens(base.StatNode, uint32, int32) float64 + type MetricType int32 + const Concurrency + const QPS + func (s MetricType) String() string + type RelationStrategy int32 + const AssociatedResource + const CurrentResource + func (s RelationStrategy) String() string + type Rule struct + ControlBehavior ControlBehavior + Count float64 + ID uint64 + MaxQueueingTimeMs uint32 + MetricType MetricType + RefResource string + RelationStrategy RelationStrategy + Resource string + TokenCalculateStrategy TokenCalculateStrategy + WarmUpColdFactor uint32 + WarmUpPeriodSec uint32 + func GetResRules(res string) []Rule + func GetRules() []Rule + func (r *Rule) ResourceName() string + func (r *Rule) String() string + type Slot struct + func (s *Slot) Check(ctx *base.EntryContext) *base.TokenResult + type ThrottlingChecker struct + func NewThrottlingChecker(timeoutMs uint32) *ThrottlingChecker + func (c *ThrottlingChecker) DoCheck(_ base.StatNode, acquireCount uint32, threshold float64) *base.TokenResult + type TokenCalculateStrategy int32 + const Direct + const WarmUp + func (s TokenCalculateStrategy) String() string + type TrafficControllerGenFunc func(*Rule) *TrafficShapingController + type TrafficControllerMap map[string][]*TrafficShapingController + type TrafficShapingCalculator interface + CalculateAllowedTokens func(node base.StatNode, acquireCount uint32, flag int32) float64 + type TrafficShapingChecker interface + DoCheck func(node base.StatNode, acquireCount uint32, threshold float64) *base.TokenResult + type TrafficShapingController struct + func NewTrafficShapingController(flowCalculator TrafficShapingCalculator, flowChecker TrafficShapingChecker, ...) *TrafficShapingController + func (t *TrafficShapingController) FlowCalculator() TrafficShapingCalculator + func (t *TrafficShapingController) FlowChecker() TrafficShapingChecker + func (t *TrafficShapingController) PerformChecking(node base.StatNode, acquireCount uint32, flag int32) *base.TokenResult + func (t *TrafficShapingController) Rule() *Rule + type WarmUpTrafficShapingCalculator struct + func NewWarmUpTrafficShapingCalculator(rule *Rule) *WarmUpTrafficShapingCalculator + func (c *WarmUpTrafficShapingCalculator) CalculateAllowedTokens(node base.StatNode, acquireCount uint32, flag int32) float64