mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-05 02:09:56 +00:00
fixup! Test workqueue metrics
This commit is contained in:
parent
74c50c0ad3
commit
44a87baf09
@ -64,6 +64,7 @@ func (noopMetric) Dec() {}
|
||||
func (noopMetric) Set(float64) {}
|
||||
func (noopMetric) Observe(float64) {}
|
||||
|
||||
// defaultQueueMetrics expects the caller to lock before setting any metrics.
|
||||
type defaultQueueMetrics struct {
|
||||
clock clock.Clock
|
||||
|
||||
@ -190,22 +191,23 @@ func (_ noopMetricsProvider) NewRetriesMetric(name string) CounterMetric {
|
||||
return noopMetric{}
|
||||
}
|
||||
|
||||
var globalMetricsFactory = metricsFactory{
|
||||
var globalMetricsFactory = queueMetricsFactory{
|
||||
metricsProvider: noopMetricsProvider{},
|
||||
}
|
||||
|
||||
type metricsFactory struct {
|
||||
type queueMetricsFactory struct {
|
||||
metricsProvider MetricsProvider
|
||||
setProviders sync.Once
|
||||
|
||||
onlyOnce sync.Once
|
||||
}
|
||||
|
||||
func (f *metricsFactory) set(mp MetricsProvider) {
|
||||
f.setProviders.Do(func() {
|
||||
func (f *queueMetricsFactory) setProvider(mp MetricsProvider) {
|
||||
f.onlyOnce.Do(func() {
|
||||
f.metricsProvider = mp
|
||||
})
|
||||
}
|
||||
|
||||
func (f *metricsFactory) newQueueMetrics(name string, clock clock.Clock) queueMetrics {
|
||||
func (f *queueMetricsFactory) newQueueMetrics(name string, clock clock.Clock) queueMetrics {
|
||||
mp := f.metricsProvider
|
||||
if len(name) == 0 || mp == (noopMetricsProvider{}) {
|
||||
return noMetrics{}
|
||||
@ -235,5 +237,5 @@ func newRetryMetrics(name string) retryMetrics {
|
||||
// SetProvider sets the metrics provider for all subsequently created work
|
||||
// queues. Only the first call has an effect.
|
||||
func SetProvider(metricsProvider MetricsProvider) {
|
||||
globalMetricsFactory.set(metricsProvider)
|
||||
globalMetricsFactory.setProvider(metricsProvider)
|
||||
}
|
||||
|
@ -124,7 +124,7 @@ func (m *testMetricsProvider) NewRetriesMetric(name string) CounterMetric {
|
||||
func TestSinceInMicroseconds(t *testing.T) {
|
||||
mp := testMetricsProvider{}
|
||||
c := clock.NewFakeClock(time.Now())
|
||||
mf := metricsFactory{metricsProvider: &mp}
|
||||
mf := queueMetricsFactory{metricsProvider: &mp}
|
||||
m := mf.newQueueMetrics("test", c)
|
||||
dqm := m.(*defaultQueueMetrics)
|
||||
|
||||
@ -141,7 +141,7 @@ func TestMetrics(t *testing.T) {
|
||||
mp := testMetricsProvider{}
|
||||
t0 := time.Unix(0, 0)
|
||||
c := clock.NewFakeClock(t0)
|
||||
mf := metricsFactory{metricsProvider: &mp}
|
||||
mf := queueMetricsFactory{metricsProvider: &mp}
|
||||
m := mf.newQueueMetrics("test", c)
|
||||
q := newQueue(c, m, time.Millisecond)
|
||||
defer q.ShutDown()
|
||||
|
Loading…
Reference in New Issue
Block a user