enhance: [2.4] Print log only when rate limit updates (#35806) (#35816)

Cherry-pick from master
pr: #35806
The debug log for "RateLimiter register for rateType" is too frequent
and in e2e cases, the may print 18M times in one run.

This PR make the log be printed only when rate limit is updated.

Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
pull/35837/head
congqixia 2024-08-29 19:09:01 +08:00 committed by GitHub
parent a1d39326b8
commit 8d3685fadf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 4 deletions

View File

@ -221,17 +221,22 @@ func initLimiter(rln *rlinternal.RateLimiterNode, rateLimiterConfigs map[interna
newLimit := ratelimitutil.Limit(p.GetAsFloat())
burst := p.GetAsFloat() // use rate as burst, because SimpleLimiter is with punishment mechanism, burst is insignificant.
old, ok := rln.GetLimiters().Get(rt)
updated := false
if ok {
if old.Limit() != newLimit {
old.SetLimit(newLimit)
updated = true
}
} else {
rln.GetLimiters().Insert(rt, ratelimitutil.NewLimiter(newLimit, burst))
updated = true
}
if updated {
log.Debug("RateLimiter register for rateType",
zap.String("rateType", internalpb.RateType_name[(int32(rt))]),
zap.String("rateLimit", newLimit.String()),
zap.String("burst", fmt.Sprintf("%v", burst)))
}
log.Debug("RateLimiter register for rateType",
zap.String("rateType", internalpb.RateType_name[(int32(rt))]),
zap.String("rateLimit", newLimit.String()),
zap.String("burst", fmt.Sprintf("%v", burst)))
}
}