Documentation ¶
Index ¶
Constants ¶
const NearLimitRatio = 0.8
The NearLimitRation constant defines the ratio of total_hits over the Limit's RequestPerUnit that need to happen before triggering a near_limit stat increase
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type RateLimit ¶
type RateLimit struct { FullKey string Stats RateLimitStats Limit *pb.RateLimitResponse_RateLimit }
Wrapper for an individual rate limit config entry which includes the defined limit and stats.
func NewRateLimit ¶
func NewRateLimit( requestsPerUnit uint32, unit pb.RateLimitResponse_RateLimit_Unit, key string, scope stats.Scope) *RateLimit
Create a new rate limit config entry. @param requestsPerUnit supplies the requests per unit of time for the entry. @param unit supplies the unit of time for the entry. @param key supplies the fully resolved key name of the entry. @param scope supplies the owning scope. @return the new config entry.
type RateLimitConfig ¶
type RateLimitConfig interface { // Dump the configuration into string form for debugging. Dump() string // Get the configured limit for a rate limit descriptor. // @param ctx supplies the calling context. // @param domain supplies the domain to lookup the descriptor in. // @param descriptor supplies the descriptor to look up. // @return a rate limit to apply or nil if no rate limit is configured for the descriptor. GetLimit(ctx context.Context, domain string, descriptor *pb_struct.RateLimitDescriptor) *RateLimit }
Interface for interacting with a loaded rate limit config.
func NewRateLimitConfigImpl ¶
func NewRateLimitConfigImpl( configs []RateLimitConfigToLoad, statsScope stats.Scope) RateLimitConfig
Create rate limit config from a list of input YAML files. @param configs specifies a list of YAML files to load. @param stats supplies the stats scope to use for limit stats during runtime. @return a new config.
type RateLimitConfigError ¶
type RateLimitConfigError string
Errors that may be raised during config parsing.
func (RateLimitConfigError) Error ¶
func (e RateLimitConfigError) Error() string
type RateLimitConfigLoader ¶
type RateLimitConfigLoader interface { // Load a new configuration from a list of YAML files. // @param configs supplies a list of full YAML files in string form. // @param statsScope supplies the stats scope to use for limit stats during runtime. // @return a new configuration. // @throws RateLimitConfigError if the configuration could not be created. Load(configs []RateLimitConfigToLoad, statsScope stats.Scope) RateLimitConfig }
Interface for loading a configuration from a list of YAML files.
func NewRateLimitConfigLoaderImpl ¶
func NewRateLimitConfigLoaderImpl() RateLimitConfigLoader
@return a new default config loader implementation.
type RateLimitConfigToLoad ¶
Information for a config file to load into the aggregate config.