Merge pull request #3702 from ripienaar/rate_limit_debug

Rate limit frequent debug log lines
This commit is contained in:
Derek Collison
2022-12-10 07:23:53 -08:00
committed by GitHub
2 changed files with 9 additions and 1 deletions

View File

@@ -214,6 +214,14 @@ func (s *Server) RateLimitWarnf(format string, v ...interface{}) {
s.Warnf("%s", statement)
}
func (s *Server) RateLimitDebugf(format string, v ...interface{}) {
statement := fmt.Sprintf(format, v...)
if _, loaded := s.rateLimitLogging.LoadOrStore(statement, time.Now()); loaded {
return
}
s.Debugf("%s", statement)
}
// Fatalf logs a fatal error
func (s *Server) Fatalf(format string, v ...interface{}) {
s.executeLogCall(func(logger Logger, format string, v ...interface{}) {

View File

@@ -3966,7 +3966,7 @@ func (mset *stream) processJetStreamMsg(subject, reply string, hdr, msg []byte,
switch err {
case ErrMaxMsgs, ErrMaxBytes, ErrMaxMsgsPerSubject, ErrMsgTooLarge:
s.Debugf("JetStream failed to store a msg on stream '%s > %s': %v", accName, name, err)
s.RateLimitDebugf("JetStream failed to store a msg on stream '%s > %s': %v", accName, name, err)
case ErrStoreClosed:
default:
s.Errorf("JetStream failed to store a msg on stream '%s > %s': %v", accName, name, err)