mirror of
https://github.com/kubernetes/client-go.git
synced 2025-09-05 17:10:27 +00:00
Improve rate limiter latency logging and metrics
Kubernetes-commit: 2bcf99f05fdc47fb4bc3601b9134408483f59773
This commit is contained in:
committed by
Kubernetes Publisher
parent
f772958f8a
commit
2d3138825e
@@ -31,6 +31,7 @@ import (
|
||||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"sync"
|
||||
"syscall"
|
||||
"testing"
|
||||
"time"
|
||||
@@ -2190,3 +2191,30 @@ func TestRequestPreflightCheck(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestThrottledLogger(t *testing.T) {
|
||||
now := time.Now()
|
||||
clock := clock.NewFakeClock(now)
|
||||
globalThrottledLogger.clock = clock
|
||||
|
||||
logMessages := 0
|
||||
for i := 0; i < 10000; i++ {
|
||||
var wg sync.WaitGroup
|
||||
wg.Add(100)
|
||||
for j := 0; j < 100; j++ {
|
||||
go func() {
|
||||
if _, ok := globalThrottledLogger.attemptToLog(); ok {
|
||||
logMessages++
|
||||
}
|
||||
wg.Done()
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
now = now.Add(1 * time.Second)
|
||||
clock.SetTime(now)
|
||||
}
|
||||
|
||||
if a, e := logMessages, 1000; a != e {
|
||||
t.Fatalf("expected %v log messages, but got %v", e, a)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user