bc9780baad
* Added rate limiting for agent RPC calls. * Initializes the rate limiter based on the config. * Adds the rate limiter into the snapshot RPC path. * Adds unit tests for the RPC rate limiter. * Groups the RPC limit parameters under "limits" in the config. * Adds some documentation about the RPC limiter. * Sends a 429 response when the rate limiter kicks in. * Adds docs for new telemetry. * Makes snapshot telemetry look like RPC telemetry and cleans up comments.
22 lines
636 B
Go
22 lines
636 B
Go
// Copyright 2017 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build go1.7
|
|
|
|
package rate
|
|
|
|
import "context"
|
|
|
|
// Wait is shorthand for WaitN(ctx, 1).
|
|
func (lim *Limiter) Wait(ctx context.Context) (err error) {
|
|
return lim.waitN(ctx, 1)
|
|
}
|
|
|
|
// WaitN blocks until lim permits n events to happen.
|
|
// It returns an error if n exceeds the Limiter's burst size, the Context is
|
|
// canceled, or the expected wait time exceeds the Context's Deadline.
|
|
func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) {
|
|
return lim.waitN(ctx, n)
|
|
}
|