Skip to content

Commit b7011ae

Browse files
committed
Aggregator
1 parent 23bbe94 commit b7011ae

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

coderd/prometheusmetrics/aggregator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ func (ma *MetricsAggregator) Run(ctx context.Context) func() {
164164

165165
var hasExpiredMetrics bool
166166
for _, m := range ma.queue {
167-
if m.expiryDate.After(now) {
167+
if now.After(m.expiryDate) {
168168
hasExpiredMetrics = true
169169
break
170170
}

coderd/prometheusmetrics/aggregator_test.go

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,20 +38,20 @@ func TestUpdateMetrics_MetricsDoNotExpire(t *testing.T) {
3838

3939
given1 := []agentsdk.AgentMetric{
4040
{Name: "a_counter_one", Type: agentsdk.AgentMetricTypeCounter, Value: 1},
41-
{Name: "b_gauge_three", Type: agentsdk.AgentMetricTypeCounter, Value: 2},
42-
{Name: "c_gauge_four", Type: agentsdk.AgentMetricTypeCounter, Value: 3},
41+
{Name: "b_counter_two", Type: agentsdk.AgentMetricTypeCounter, Value: 2},
42+
{Name: "c_gauge_three", Type: agentsdk.AgentMetricTypeGauge, Value: 3},
4343
}
4444

4545
given2 := []agentsdk.AgentMetric{
46-
{Name: "b_gauge_three", Type: agentsdk.AgentMetricTypeCounter, Value: 4},
47-
{Name: "d_gauge_four", Type: agentsdk.AgentMetricTypeCounter, Value: 6},
46+
{Name: "b_counter_two", Type: agentsdk.AgentMetricTypeCounter, Value: 4},
47+
{Name: "d_gauge_four", Type: agentsdk.AgentMetricTypeGauge, Value: 6},
4848
}
4949

5050
expected := []agentsdk.AgentMetric{
5151
{Name: "a_counter_one", Type: agentsdk.AgentMetricTypeCounter, Value: 1},
52-
{Name: "b_gauge_three", Type: agentsdk.AgentMetricTypeCounter, Value: 4},
53-
{Name: "c_gauge_four", Type: agentsdk.AgentMetricTypeCounter, Value: 3},
54-
{Name: "d_gauge_four", Type: agentsdk.AgentMetricTypeCounter, Value: 6},
52+
{Name: "b_counter_two", Type: agentsdk.AgentMetricTypeCounter, Value: 4},
53+
{Name: "c_gauge_three", Type: agentsdk.AgentMetricTypeGauge, Value: 3},
54+
{Name: "d_gauge_four", Type: agentsdk.AgentMetricTypeGauge, Value: 6},
5555
}
5656

5757
// when
@@ -62,14 +62,20 @@ func TestUpdateMetrics_MetricsDoNotExpire(t *testing.T) {
6262
require.Eventually(t, func() bool {
6363
var actual []prometheus.Metric
6464
metricsCh := make(chan prometheus.Metric)
65+
66+
done := make(chan struct{}, 1)
67+
defer close(done)
6568
go func() {
6669
for m := range metricsCh {
6770
actual = append(actual, m)
6871
}
72+
done <- struct{}{}
6973
}()
7074
metricsAggregator.Collect(metricsCh)
75+
close(metricsCh)
76+
<-done
7177
return verifyCollectedMetrics(t, expected, actual)
72-
}, testutil.WaitMedium, testutil.IntervalFast)
78+
}, testutil.WaitMedium, testutil.IntervalSlow)
7379
}
7480

7581
func verifyCollectedMetrics(t *testing.T, expected []agentsdk.AgentMetric, actual []prometheus.Metric) bool {
@@ -131,12 +137,18 @@ func TestUpdateMetrics_MetricsExpire(t *testing.T) {
131137
require.Eventually(t, func() bool {
132138
var actual []prometheus.Metric
133139
metricsCh := make(chan prometheus.Metric)
140+
141+
done := make(chan struct{}, 1)
142+
defer close(done)
134143
go func() {
135144
for m := range metricsCh {
136145
actual = append(actual, m)
137146
}
147+
done <- struct{}{}
138148
}()
139149
metricsAggregator.Collect(metricsCh)
150+
close(metricsCh)
151+
<-done
140152
return len(actual) == 0
141153
}, testutil.WaitShort, testutil.IntervalFast)
142154
}

0 commit comments

Comments
 (0)