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.