type testMetrics … func (m *testMetrics) add(item any) { … } func (m *testMetrics) get(item any) { … } func (m *testMetrics) done(item any) { … } func (m *testMetrics) updateUnfinishedWork() { … } func TestMetricShutdown(t *testing.T) { … } type testMetric … func (m *testMetric) Inc() { … } func (m *testMetric) Dec() { … } func (m *testMetric) Set(f float64) { … } func (m *testMetric) Observe(f float64) { … } func (m *testMetric) gaugeValue() float64 { … } func (m *testMetric) observationValue() float64 { … } func (m *testMetric) observationCount() int { … } func (m *testMetric) notify() { … } type testMetricsProvider … func (m *testMetricsProvider) NewDepthMetric(name string) GaugeMetric { … } func (m *testMetricsProvider) NewAddsMetric(name string) CounterMetric { … } func (m *testMetricsProvider) NewLatencyMetric(name string) HistogramMetric { … } func (m *testMetricsProvider) NewWorkDurationMetric(name string) HistogramMetric { … } func (m *testMetricsProvider) NewUnfinishedWorkSecondsMetric(name string) SettableGaugeMetric { … } func (m *testMetricsProvider) NewLongestRunningProcessorSecondsMetric(name string) SettableGaugeMetric { … } func (m *testMetricsProvider) NewRetriesMetric(name string) CounterMetric { … } func TestMetrics(t *testing.T) { … }