diff --git a/management/server/grpcserver.go b/management/server/grpcserver.go index 37fb81de7..0df1f4aea 100644 --- a/management/server/grpcserver.go +++ b/management/server/grpcserver.go @@ -95,6 +95,13 @@ func NewServer( if loginRatePerS == 0 || err != nil { loginRatePerS = 200 } + + loginBurst, err := strconv.Atoi(os.Getenv("NB_LOGIN_BURST")) + if loginBurst == 0 || err != nil { + loginBurst = 200 + } + log.WithContext(ctx).Infof("login burst limit set to %d", loginBurst) + loginPeerRatePerS, err := strconv.Atoi(os.Getenv("NB_LOGIN_PEER_RATE_PER_M")) if loginPeerRatePerS == 0 || err != nil { loginPeerRatePerS = 200 @@ -107,6 +114,12 @@ func NewServer( } log.WithContext(ctx).Infof("sync rate limit set to %d/min", syncRatePerS) + syncBurst, err := strconv.Atoi(os.Getenv("NB_SYNC_BURST")) + if syncBurst == 0 || err != nil { + syncBurst = 200 + } + log.WithContext(ctx).Infof("sync burst limit set to %d", syncBurst) + return &GRPCServer{ wgKey: key, // peerKey -> event channel @@ -119,7 +132,7 @@ func NewServer( appMetrics: appMetrics, ephemeralManager: ephemeralManager, syncLimiter: rate.NewLimiter(rate.Every(time.Minute/time.Duration(syncRatePerS)), 100), - loginLimiter: rate.NewLimiter(rate.Every(multiplier/time.Duration(loginRatePerS)), 100), + loginLimiter: rate.NewLimiter(rate.Every(multiplier/time.Duration(loginRatePerS)), loginBurst), loginPeerLimit: rate.Every(time.Minute / time.Duration(loginPeerRatePerS)), }, nil }