Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLimiter ¶
Types ¶
type Config ¶
type Config struct { //> @3@4@5@6 //> //> The event field which will be used as a key for throttling. //> It means that throttling will work separately for events with different keys. //> If not set, it's assumed that all events have the same key. ThrottleField cfg.FieldSelector `json:"throttle_field" default:"" parse:"selector"` //* ThrottleField_ []string //> @3@4@5@6 //> //> The event field which defines the time when event was fired. //> It is used to detect the event throughput in a particular time range. //> If not set, the current time will be taken. TimeField cfg.FieldSelector `json:"time_field" default:"time"` //* TimeField_ []string //> @3@4@5@6 //> //> It defines how to parse the time field format. TimeFieldFormat string `` //* /* 185-byte string literal not displayed */ //> @3@4@5@6 //> //> The default events limit that plugin allows per `interval` DefaultLimit int64 `json:"default_limit" default:"5000"` //* //> @3@4@5@6 //> //> What we're limiting: number of messages, or total size of the messages LimitKind string `json:"limit_kind" default:"count" options:"count|size"` //* //> @3@4@5@6 //> //> How much time buckets to hold in the memory. E.g. if `buckets_count` is `60` and `interval` is `5m`, //> then `5 hours` will be covered. Events with time later than `now() - 5h` will be dropped even if threshold isn't exceeded. BucketsCount int `json:"buckets_count" default:"60"` //* //> @3@4@5@6 //> //> Time interval to check event throughput. BucketInterval cfg.Duration `json:"bucket_interval" parse:"duration" default:"1m"` //* BucketInterval_ time.Duration //> @3@4@5@6 //> //> Rules to override the `default_limit` for different group of event. It's a list of objects. //> Each object has the `limit` and `conditions` fields. //> * `limit` – the value which will override the `default_limit`, if `conditions` are met. //> * `limit_kind` – the type of a limit: `count` - number of messages, `size` - total size from all messages //> * `conditions` – the map of `event field name => event field value`. The conditions are checked using `AND` operator. Rules []RuleConfig `json:"rules" default:"" slice:"true"` //* }
! config-params ^ config-params
Click to show internal directories.
Click to hide internal directories.