go.d remove duplicate chart check in tests (#18650)
Ilya Mashchenko committed
Oct 1, 2024 at 10:52 UTC
ff8feb3f74bf709daed0b5c5ae70bf250ccc0050
31 files changed
+94
-506
src/go/plugin/go.d/agent/module/charts.go
+6
-2
@@ -468,12 +468,16 @@ func TestMetricsHasAllChartsDims(t *testing.T, charts *Charts, mx map[string]int
468
TestMetricsHasAllChartsDimsSkip(t, charts, mx, nil)
469
}
470
471
-func TestMetricsHasAllChartsDimsSkip(t *testing.T, charts *Charts, mx map[string]int64, skip func(chart *Chart) bool) {
471
+func TestMetricsHasAllChartsDimsSkip(t *testing.T, charts *Charts, mx map[string]int64, skip func(chart *Chart, dim *Dim) bool) {
472
for _, chart := range *charts {
473
- if chart.Obsolete || (skip != nil && skip(chart)) {
473
+ if chart.Obsolete {
474
continue
475
}
476
for _, dim := range chart.Dims {
477
+ if skip != nil && skip(chart, dim) {
478
+ continue
479
+ }
480
+
481
_, ok := mx[dim.ID]
482
assert.Truef(t, ok, "missing data for dimension '%s' in chart '%s'", dim.ID, chart.ID)
483
}
src/go/plugin/go.d/modules/apcupsd/apcupsd_test.go
+1
-1
@@ -221,7 +221,7 @@ func TestApcupsd_Collect(t *testing.T) {
221
222
if len(test.wantCollected) > 0 {
223
if strings.Contains(name, "commlost") {
224
- module.TestMetricsHasAllChartsDimsSkip(t, apc.Charts(), mx, func(chart *module.Chart) bool {
224
+ module.TestMetricsHasAllChartsDimsSkip(t, apc.Charts(), mx, func(chart *module.Chart, _ *module.Dim) bool {
225
return chart.ID != statusChart.ID
226
})
227
} else {
src/go/plugin/go.d/modules/couchbase/couchbase_test.go
+3
-19
@@ -166,10 +166,10 @@ func TestCouchbase_Collect(t *testing.T) {
166
cb, cleanup := test.prepare(t)
167
defer cleanup()
168
169
- collected := cb.Collect()
169
+ mx := cb.Collect()
170
171
- assert.Equal(t, test.wantCollected, collected)
172
- ensureCollectedHasAllChartsDimsVarsIDs(t, cb, collected)
171
+ assert.Equal(t, test.wantCollected, mx)
172
+ module.TestMetricsHasAllChartsDims(t, cb.Charts(), mx)
173
})
174
}
175
}
@@ -222,19 +222,3 @@ func prepareCouchbaseConnectionRefused(t *testing.T) (*Couchbase, func()) {
222
223
return cb, func() {}
224
}
225
-
226
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, cb *Couchbase, collected map[string]int64) {
227
- for _, chart := range *cb.Charts() {
228
- if chart.Obsolete {
229
- continue
230
- }
231
- for _, dim := range chart.Dims {
232
- _, ok := collected[dim.ID]
233
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
234
- }
235
- for _, v := range chart.Vars {
236
- _, ok := collected[v.ID]
237
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
238
- }
239
- }
240
-}
src/go/plugin/go.d/modules/couchdb/couchdb_test.go
+4
-20
@@ -357,35 +357,19 @@ func TestCouchDB_Collect(t *testing.T) {
357
cdb, cleanup := prepareCouchDB(t, test.prepare)
358
defer cleanup()
359
360
- var collected map[string]int64
360
+ var mx map[string]int64
361
for i := 0; i < 10; i++ {
362
- collected = cdb.Collect()
362
+ mx = cdb.Collect()
363
}
364
365
- assert.Equal(t, test.wantCollected, collected)
365
+ assert.Equal(t, test.wantCollected, mx)
366
if test.checkCharts {
367
- ensureCollectedHasAllChartsDimsVarsIDs(t, cdb, collected)
367
+ module.TestMetricsHasAllChartsDims(t, cdb.Charts(), mx)
368
}
369
})
370
}
371
}
372
373
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, cdb *CouchDB, collected map[string]int64) {
374
- for _, chart := range *cdb.Charts() {
375
- if chart.Obsolete {
376
- continue
377
- }
378
- for _, dim := range chart.Dims {
379
- _, ok := collected[dim.ID]
380
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
381
- }
382
- for _, v := range chart.Vars {
383
- _, ok := collected[v.ID]
384
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
385
- }
386
- }
387
-}
388
-
373
func prepareCouchDB(t *testing.T, createCDB func() *CouchDB) (cdb *CouchDB, cleanup func()) {
374
t.Helper()
375
cdb = createCDB()
src/go/plugin/go.d/modules/dnsdist/dnsdist_test.go
+3
-19
@@ -189,32 +189,16 @@ func TestDNSdist_Collect(t *testing.T) {
189
defer cleanup()
190
require.NoError(t, dist.Init())
191
192
- collected := dist.Collect()
192
+ mx := dist.Collect()
193
194
- assert.Equal(t, test.wantCollected, collected)
194
+ assert.Equal(t, test.wantCollected, mx)
195
if len(test.wantCollected) > 0 {
196
- ensureCollectedHasAllChartsDimsVarsIDs(t, dist, collected)
196
+ module.TestMetricsHasAllChartsDims(t, dist.Charts(), mx)
197
}
198
})
199
}
200
}
201
202
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, dist *DNSdist, collected map[string]int64) {
203
- for _, chart := range *dist.Charts() {
204
- if chart.Obsolete {
205
- continue
206
- }
207
- for _, dim := range chart.Dims {
208
- _, ok := collected[dim.ID]
209
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
210
- }
211
- for _, v := range chart.Vars {
212
- _, ok := collected[v.ID]
213
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
214
- }
215
- }
216
-}
217
-
202
func preparePowerDNSdistV151() (*DNSdist, func()) {
203
srv := preparePowerDNSDistEndpoint()
204
ns := New()
src/go/plugin/go.d/modules/dnsmasq/dnsmasq_test.go
+3
-19
@@ -152,32 +152,16 @@ func TestDnsmasq_Collect(t *testing.T) {
152
dnsmasq := test.prepare()
153
require.NoError(t, dnsmasq.Init())
154
155
- collected := dnsmasq.Collect()
155
+ mx := dnsmasq.Collect()
156
157
- assert.Equal(t, test.wantCollected, collected)
157
+ assert.Equal(t, test.wantCollected, mx)
158
if len(test.wantCollected) > 0 {
159
- ensureCollectedHasAllChartsDimsVarsIDs(t, dnsmasq, collected)
159
+ module.TestMetricsHasAllChartsDims(t, dnsmasq.Charts(), mx)
160
}
161
})
162
}
163
}
164
165
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, dnsmasq *Dnsmasq, collected map[string]int64) {
166
- for _, chart := range *dnsmasq.Charts() {
167
- if chart.Obsolete {
168
- continue
169
- }
170
- for _, dim := range chart.Dims {
171
- _, ok := collected[dim.ID]
172
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
173
- }
174
- for _, v := range chart.Vars {
175
- _, ok := collected[v.ID]
176
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
177
- }
178
- }
179
-}
180
-
165
func prepareOKDnsmasq() *Dnsmasq {
166
dnsmasq := New()
167
dnsmasq.newDNSClient = func(network string, timeout time.Duration) dnsClient {
src/go/plugin/go.d/modules/docker_engine/docker_engine_test.go
+4
-18
@@ -253,29 +253,15 @@ func TestDockerEngine_Collect(t *testing.T) {
253
for i := 0; i < 10; i++ {
254
_ = pulsar.Collect()
255
}
256
- collected := pulsar.Collect()
256
+ mx := pulsar.Collect()
257
258
- require.NotNil(t, collected)
259
- require.Equal(t, test.expected, collected)
260
- ensureCollectedHasAllChartsDimsVarsIDs(t, pulsar, collected)
258
+ require.NotNil(t, mx)
259
+ require.Equal(t, test.expected, mx)
260
+ module.TestMetricsHasAllChartsDims(t, pulsar.Charts(), mx)
261
})
262
}
263
}
264
265
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, dockerEngine *DockerEngine, collected map[string]int64) {
266
- t.Helper()
267
- for _, chart := range *dockerEngine.Charts() {
268
- for _, dim := range chart.Dims {
269
- _, ok := collected[dim.ID]
270
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
271
- }
272
- for _, v := range chart.Vars {
273
- _, ok := collected[v.ID]
274
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
275
- }
276
- }
277
-}
278
-
265
func prepareClientServerV17050CE(t *testing.T) (*DockerEngine, *httptest.Server) {
266
t.Helper()
267
srv := httptest.NewServer(http.HandlerFunc(
src/go/plugin/go.d/modules/elasticsearch/elasticsearch_test.go
+1
-28
@@ -636,40 +636,13 @@ func TestElasticsearch_Collect(t *testing.T) {
636
mx = es.Collect()
637
}
638
639
- //m := mx
640
- //l := make([]string, 0)
641
- //for k := range m {
642
- // l = append(l, k)
643
- //}
644
- //sort.Strings(l)
645
- //for _, value := range l {
646
- // fmt.Println(fmt.Sprintf("\"%s\": %d,", value, m[value]))
647
- //}
648
- //return
649
-
639
assert.Equal(t, test.wantCollected, mx)
640
assert.Len(t, *es.Charts(), test.wantCharts)
652
- ensureCollectedHasAllChartsDimsVarsIDs(t, es, mx)
641
+ module.TestMetricsHasAllChartsDims(t, es.Charts(), mx)
642
})
643
}
644
}
645
657
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, es *Elasticsearch, collected map[string]int64) {
658
- for _, chart := range *es.Charts() {
659
- if chart.Obsolete {
660
- continue
661
- }
662
- for _, dim := range chart.Dims {
663
- _, ok := collected[dim.ID]
664
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
665
- }
666
- for _, v := range chart.Vars {
667
- _, ok := collected[v.ID]
668
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
669
- }
670
- }
671
-}
672
-
646
func prepareElasticsearch(t *testing.T, createES func() *Elasticsearch) (es *Elasticsearch, cleanup func()) {
647
t.Helper()
648
srv := prepareElasticsearchEndpoint()
src/go/plugin/go.d/modules/envoy/envoy_test.go
+1
-14
@@ -504,24 +504,11 @@ func TestEnvoy_Collect(t *testing.T) {
504
mx := envoy.Collect()
505
506
require.Equal(t, test.wantMetrics, mx)
507
- ensureCollectedHasAllChartsDimsVarsIDs(t, envoy, mx)
507
+ module.TestMetricsHasAllChartsDims(t, envoy.Charts(), mx)
508
})
509
}
510
}
511
512
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, envoy *Envoy, mx map[string]int64) {
513
- for _, chart := range *envoy.Charts() {
514
- for _, dim := range chart.Dims {
515
- _, ok := mx[dim.ID]
516
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
517
- }
518
- for _, v := range chart.Vars {
519
- _, ok := mx[v.ID]
520
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
521
- }
522
- }
523
-}
524
-
512
func prepareCaseEnvoyConsulDataplaneStats() (*Envoy, func()) {
513
srv := httptest.NewServer(http.HandlerFunc(
514
func(w http.ResponseWriter, r *http.Request) {
src/go/plugin/go.d/modules/freeradius/freeradius_test.go
+3
-16
@@ -117,10 +117,10 @@ func TestFreeRADIUS_Collect(t *testing.T) {
117
"proxy-acct-dropped-requests": 33,
118
"proxy-acct-unknown-types": 34,
119
}
120
- collected := freeRADIUS.Collect()
120
+ mx := freeRADIUS.Collect()
121
122
- assert.Equal(t, expected, collected)
123
- ensureCollectedHasAllChartsDimsVarsIDs(t, freeRADIUS, collected)
122
+ assert.Equal(t, expected, mx)
123
+ module.TestMetricsHasAllChartsDims(t, freeRADIUS.Charts(), mx)
124
}
125
126
func TestFreeRADIUS_Collect_ReturnsNilIfClientStatusReturnsError(t *testing.T) {
@@ -134,19 +134,6 @@ func TestFreeRADIUS_Cleanup(t *testing.T) {
134
New().Cleanup()
135
}
136
137
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, f *FreeRADIUS, collected map[string]int64) {
138
- for _, chart := range *f.Charts() {
139
- for _, dim := range chart.Dims {
140
- _, ok := collected[dim.ID]
141
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
142
- }
143
- for _, v := range chart.Vars {
144
- _, ok := collected[v.ID]
145
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
146
- }
147
- }
148
-}
149
-
137
func newOKMockClient() *mockClient {
138
return &mockClient{}
139
}
src/go/plugin/go.d/modules/haproxy/haproxy_test.go
+3
-19
@@ -173,11 +173,11 @@ func TestHaproxy_Collect(t *testing.T) {
173
h, cleanup := test.prepare(t)
174
defer cleanup()
175
176
- ms := h.Collect()
176
+ mx := h.Collect()
177
178
- assert.Equal(t, test.wantCollected, ms)
178
+ assert.Equal(t, test.wantCollected, mx)
179
if len(test.wantCollected) > 0 {
180
- ensureCollectedHasAllChartsDimsVarsIDs(t, h, ms)
180
+ module.TestMetricsHasAllChartsDims(t, h.Charts(), mx)
181
}
182
})
183
}
@@ -245,19 +245,3 @@ func prepareCaseConnectionRefused(t *testing.T) (*Haproxy, func()) {
245
246
return h, func() {}
247
}
248
-
249
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, h *Haproxy, ms map[string]int64) {
250
- for _, chart := range *h.Charts() {
251
- if chart.Obsolete {
252
- continue
253
- }
254
- for _, dim := range chart.Dims {
255
- _, ok := ms[dim.ID]
256
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
257
- }
258
- for _, v := range chart.Vars {
259
- _, ok := ms[v.ID]
260
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
261
- }
262
- }
263
-}
src/go/plugin/go.d/modules/isc_dhcpd/isc_dhcpd_test.go
+4
-20
@@ -226,32 +226,16 @@ func TestDHCPd_Collect(t *testing.T) {
226
dhcpd := test.prepare()
227
require.NoError(t, dhcpd.Init())
228
229
- collected := dhcpd.Collect()
229
+ mx := dhcpd.Collect()
230
231
- assert.Equal(t, test.wantCollected, collected)
232
- if len(collected) > 0 {
233
- ensureCollectedHasAllChartsDimsVarsIDs(t, dhcpd, collected)
231
+ assert.Equal(t, test.wantCollected, mx)
232
+ if len(mx) > 0 {
233
+ module.TestMetricsHasAllChartsDims(t, dhcpd.Charts(), mx)
234
}
235
})
236
}
237
}
238
239
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, dhcpd *DHCPd, collected map[string]int64) {
240
- for _, chart := range *dhcpd.Charts() {
241
- if chart.Obsolete {
242
- continue
243
- }
244
- for _, dim := range chart.Dims {
245
- _, ok := collected[dim.ID]
246
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
247
- }
248
- for _, v := range chart.Vars {
249
- _, ok := collected[v.ID]
250
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
251
- }
252
- }
253
-}
254
-
239
func prepareDHCPdLeasesNotExists() *DHCPd {
240
dhcpd := New()
241
dhcpd.Config = Config{
src/go/plugin/go.d/modules/logstash/logstash_test.go
+1
-14
@@ -180,25 +180,12 @@ func TestLogstash_Collect(t *testing.T) {
180
require.Equal(t, test.wantMetrics, mx)
181
if len(test.wantMetrics) > 0 {
182
assert.Equal(t, test.wantNumOfCharts, len(*ls.Charts()))
183
- ensureCollectedHasAllChartsDimsVarsIDs(t, ls, mx)
183
+ module.TestMetricsHasAllChartsDims(t, ls.Charts(), mx)
184
}
185
})
186
}
187
}
188
189
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, ls *Logstash, mx map[string]int64) {
190
- for _, chart := range *ls.Charts() {
191
- for _, dim := range chart.Dims {
192
- _, ok := mx[dim.ID]
193
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
194
- }
195
- for _, v := range chart.Vars {
196
- _, ok := mx[v.ID]
197
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
198
- }
199
- }
200
-}
201
-
189
func caseValidResponse(t *testing.T) (*Logstash, func()) {
190
t.Helper()
191
srv := httptest.NewServer(http.HandlerFunc(
src/go/plugin/go.d/modules/mysql/mysql_test.go
+6
-12
@@ -1666,23 +1666,17 @@ func TestMySQL_Collect(t *testing.T) {
1666
}
1667
}
1668
1669
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, mySQL *MySQL, collected map[string]int64) {
1670
- for _, chart := range *mySQL.Charts() {
1669
+func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, mySQL *MySQL, mx map[string]int64) {
1670
+ module.TestMetricsHasAllChartsDimsSkip(t, mySQL.Charts(), mx, func(chart *module.Chart, _ *module.Dim) bool {
1671
if mySQL.isMariaDB {
1672
// https://mariadb.com/kb/en/server-status-variables/#connection_errors_accept
1673
if mySQL.version.LT(semver.Version{Major: 10, Minor: 0, Patch: 4}) && chart.ID == "connection_errors" {
1674
- continue
1674
+ return true
1675
}
1676
}
1677
- for _, dim := range chart.Dims {
1678
- _, ok := collected[dim.ID]
1679
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
1680
- }
1681
- for _, v := range chart.Vars {
1682
- _, ok := collected[v.ID]
1683
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
1684
- }
1685
- }
1677
+ return false
1678
+
1679
+ })
1680
}
1681
1682
func copyProcessListQueryDuration(dst, src map[string]int64) {
src/go/plugin/go.d/modules/nginxplus/nginxplus_test.go
+3
-17
@@ -463,7 +463,9 @@ func TestNginxPlus_Collect(t *testing.T) {
463
require.Equal(t, test.wantMetrics, mx)
464
if len(test.wantMetrics) > 0 {
465
assert.Equalf(t, test.wantNumOfCharts, len(*nginx.Charts()), "number of charts")
466
- ensureCollectedHasAllChartsDimsVarsIDs(t, nginx, mx)
466
+ module.TestMetricsHasAllChartsDimsSkip(t, nginx.Charts(), mx, func(chart *module.Chart, _ *module.Dim) bool {
467
+ return chart.ID == uptimeChart.ID
468
+ })
469
}
470
})
471
}
@@ -578,19 +580,3 @@ func caseConnectionRefused(t *testing.T) (*NginxPlus, func()) {
580
581
return nginx, func() {}
582
}
581
-
582
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, n *NginxPlus, mx map[string]int64) {
583
- for _, chart := range *n.Charts() {
584
- if chart.ID == uptimeChart.ID {
585
- continue
586
- }
587
- for _, dim := range chart.Dims {
588
- _, ok := mx[dim.ID]
589
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
590
- }
591
- for _, v := range chart.Vars {
592
- _, ok := mx[v.ID]
593
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
594
- }
595
- }
596
-}
src/go/plugin/go.d/modules/nginxvts/nginxvts_test.go
+3
-19
@@ -170,32 +170,16 @@ func TestNginxVTS_Collect(t *testing.T) {
170
vts, cleanup := test.prepare(t)
171
defer cleanup()
172
173
- collected := vts.Collect()
173
+ mx := vts.Collect()
174
175
- assert.Equal(t, test.wantCollected, collected)
175
+ assert.Equal(t, test.wantCollected, mx)
176
if test.checkCharts {
177
- ensureCollectedHasAllChartsDimsVarsIDs(t, vts, collected)
177
+ module.TestMetricsHasAllChartsDims(t, vts.Charts(), mx)
178
}
179
})
180
}
181
}
182
183
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, vts *NginxVTS, collected map[string]int64) {
184
- for _, chart := range *vts.Charts() {
185
- if chart.Obsolete {
186
- continue
187
- }
188
- for _, dim := range chart.Dims {
189
- _, ok := collected[dim.ID]
190
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
191
- }
192
- for _, v := range chart.Vars {
193
- _, ok := collected[v.ID]
194
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
195
- }
196
- }
197
-}
198
-
183
func prepareNginxVTS(t *testing.T, createNginxVTS func() *NginxVTS) (vts *NginxVTS, cleanup func()) {
184
t.Helper()
185
vts = createNginxVTS()
src/go/plugin/go.d/modules/pika/pika_test.go
+3
-19
@@ -187,11 +187,11 @@ func TestPika_Collect(t *testing.T) {
187
t.Run(name, func(t *testing.T) {
188
pika := test.prepare(t)
189
190
- ms := pika.Collect()
190
+ mx := pika.Collect()
191
192
- assert.Equal(t, test.wantCollected, ms)
192
+ assert.Equal(t, test.wantCollected, mx)
193
if len(test.wantCollected) > 0 {
194
- ensureCollectedHasAllChartsDimsVarsIDs(t, pika, ms)
194
+ module.TestMetricsHasAllChartsDims(t, pika.Charts(), mx)
195
ensureCollectedCommandsAddedToCharts(t, pika)
196
ensureCollectedDbsAddedToCharts(t, pika)
197
}
@@ -226,22 +226,6 @@ func preparePikaWithRedisMetrics(t *testing.T) *Pika {
226
return pika
227
}
228
229
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, pika *Pika, ms map[string]int64) {
230
- for _, chart := range *pika.Charts() {
231
- if chart.Obsolete {
232
- continue
233
- }
234
- for _, dim := range chart.Dims {
235
- _, ok := ms[dim.ID]
236
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
237
- }
238
- for _, v := range chart.Vars {
239
- _, ok := ms[v.ID]
240
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
241
- }
242
- }
243
-}
244
-
229
func ensureCollectedCommandsAddedToCharts(t *testing.T, pika *Pika) {
230
for _, id := range []string{
231
chartCommandsCalls.ID,
src/go/plugin/go.d/modules/powerdns/authoritativens_test.go
+3
-19
@@ -244,32 +244,16 @@ func TestAuthoritativeNS_Collect(t *testing.T) {
244
defer cleanup()
245
require.NoError(t, ns.Init())
246
247
- collected := ns.Collect()
247
+ mx := ns.Collect()
248
249
- assert.Equal(t, test.wantCollected, collected)
249
+ assert.Equal(t, test.wantCollected, mx)
250
if len(test.wantCollected) > 0 {
251
- ensureCollectedHasAllChartsDimsVarsIDs(t, ns, collected)
251
+ module.TestMetricsHasAllChartsDims(t, ns.Charts(), mx)
252
}
253
})
254
}
255
}
256
257
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, ns *AuthoritativeNS, collected map[string]int64) {
258
- for _, chart := range *ns.Charts() {
259
- if chart.Obsolete {
260
- continue
261
- }
262
- for _, dim := range chart.Dims {
263
- _, ok := collected[dim.ID]
264
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
265
- }
266
- for _, v := range chart.Vars {
267
- _, ok := collected[v.ID]
268
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
269
- }
270
- }
271
-}
272
-
257
func preparePowerDNSAuthoritativeNSV430() (*AuthoritativeNS, func()) {
258
srv := preparePowerDNSAuthoritativeNSEndpoint()
259
ns := New()
src/go/plugin/go.d/modules/powerdns_recursor/recursor_test.go
+3
-19
@@ -279,32 +279,16 @@ func TestRecursor_Collect(t *testing.T) {
279
defer cleanup()
280
require.NoError(t, recursor.Init())
281
282
- collected := recursor.Collect()
282
+ mx := recursor.Collect()
283
284
- assert.Equal(t, test.wantCollected, collected)
284
+ assert.Equal(t, test.wantCollected, mx)
285
if len(test.wantCollected) > 0 {
286
- ensureCollectedHasAllChartsDimsVarsIDs(t, recursor, collected)
286
+ module.TestMetricsHasAllChartsDims(t, recursor.Charts(), mx)
287
}
288
})
289
}
290
}
291
292
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, rec *Recursor, collected map[string]int64) {
293
- for _, chart := range *rec.Charts() {
294
- if chart.Obsolete {
295
- continue
296
- }
297
- for _, dim := range chart.Dims {
298
- _, ok := collected[dim.ID]
299
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
300
- }
301
- for _, v := range chart.Vars {
302
- _, ok := collected[v.ID]
303
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
304
- }
305
- }
306
-}
307
-
292
func preparePowerDNSRecursorV431() (*Recursor, func()) {
293
srv := preparePowerDNSRecursorEndpoint()
294
recursor := New()
src/go/plugin/go.d/modules/pulsar/pulsar_test.go
+4
-17
@@ -171,11 +171,11 @@ func TestPulsar_Collect(t *testing.T) {
171
for i := 0; i < 10; i++ {
172
_ = pulsar.Collect()
173
}
174
- collected := pulsar.Collect()
174
+ mx := pulsar.Collect()
175
176
- require.NotNil(t, collected)
177
- require.Equal(t, test.expected, collected)
178
- ensureCollectedHasAllChartsDimsVarsIDs(t, pulsar, collected)
176
+ require.NotNil(t, mx)
177
+ require.Equal(t, test.expected, mx)
178
+ module.TestMetricsHasAllChartsDims(t, pulsar.Charts(), mx)
179
})
180
}
181
}
@@ -212,19 +212,6 @@ func TestPulsar_Collect_RemoveAddNamespacesTopicsInRuntime(t *testing.T) {
212
}
213
}
214
215
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, pulsar *Pulsar, collected map[string]int64) {
216
- for _, chart := range *pulsar.Charts() {
217
- for _, dim := range chart.Dims {
218
- _, ok := collected[dim.ID]
219
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
220
- }
221
- for _, v := range chart.Vars {
222
- _, ok := collected[v.ID]
223
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
224
- }
225
- }
226
-}
227
-
215
func prepareClientServerStdV250Namespaces(t *testing.T) (*Pulsar, *httptest.Server) {
216
t.Helper()
217
srv := httptest.NewServer(http.HandlerFunc(
src/go/plugin/go.d/modules/redis/redis_test.go
+4
-21
@@ -298,13 +298,13 @@ func TestRedis_Collect(t *testing.T) {
298
t.Run(name, func(t *testing.T) {
299
rdb := test.prepare(t)
300
301
- ms := rdb.Collect()
301
+ mx := rdb.Collect()
302
303
- copyTimeRelatedMetrics(ms, test.wantCollected)
303
+ copyTimeRelatedMetrics(mx, test.wantCollected)
304
305
- assert.Equal(t, test.wantCollected, ms)
305
+ assert.Equal(t, test.wantCollected, mx)
306
if len(test.wantCollected) > 0 {
307
- ensureCollectedHasAllChartsDimsVarsIDs(t, rdb, ms)
307
+ module.TestMetricsHasAllChartsDims(t, rdb.Charts(), mx)
308
ensureCollectedCommandsAddedToCharts(t, rdb)
309
ensureCollectedDbsAddedToCharts(t, rdb)
310
}
@@ -338,23 +338,6 @@ func prepareRedisWithPikaMetrics(t *testing.T) *Redis {
338
}
339
return rdb
340
}
341
-
342
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, rdb *Redis, ms map[string]int64) {
343
- for _, chart := range *rdb.Charts() {
344
- if chart.Obsolete {
345
- continue
346
- }
347
- for _, dim := range chart.Dims {
348
- _, ok := ms[dim.ID]
349
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
350
- }
351
- for _, v := range chart.Vars {
352
- _, ok := ms[v.ID]
353
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
354
- }
355
- }
356
-}
357
-
341
func ensureCollectedCommandsAddedToCharts(t *testing.T, rdb *Redis) {
342
for _, id := range []string{
343
chartCommandsCalls.ID,
src/go/plugin/go.d/modules/rethinkdb/rethinkdb_test.go
+2
-2
@@ -154,12 +154,12 @@ func TestRethinkdb_Collect(t *testing.T) {
154
prepare func() *Rethinkdb
155
wantMetrics map[string]int64
156
wantCharts int
157
- skipChart func(chart *module.Chart) bool
157
+ skipChart func(chart *module.Chart, dim *module.Dim) bool
158
}{
159
"success on valid response": {
160
prepare: prepareCaseOk,
161
wantCharts: len(clusterCharts) + len(serverChartsTmpl)*3,
162
- skipChart: func(chart *module.Chart) bool {
162
+ skipChart: func(chart *module.Chart, dim *module.Dim) bool {
163
return strings.HasPrefix(chart.ID, "server_0f74c641-af5f-48d6-a005-35b8983c576a") &&
164
!strings.Contains(chart.ID, "stats_request_status")
165
},
src/go/plugin/go.d/modules/supervisord/supervisord_test.go
+3
-28
@@ -169,40 +169,15 @@ func TestSupervisord_Collect(t *testing.T) {
169
supvr := test.prepare(t)
170
defer supvr.Cleanup()
171
172
- ms := supvr.Collect()
173
- assert.Equal(t, test.wantCollected, ms)
172
+ mx := supvr.Collect()
173
+ assert.Equal(t, test.wantCollected, mx)
174
if len(test.wantCollected) > 0 {
175
- ensureCollectedHasAllChartsDimsVarsIDs(t, supvr, ms)
176
- ensureCollectedProcessesAddedToCharts(t, supvr)
175
+ module.TestMetricsHasAllChartsDims(t, supvr.Charts(), mx)
176
}
177
})
178
}
179
}
180
182
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, supvr *Supervisord, ms map[string]int64) {
183
- for _, chart := range *supvr.Charts() {
184
- if chart.Obsolete {
185
- continue
186
- }
187
- for _, dim := range chart.Dims {
188
- _, ok := ms[dim.ID]
189
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
190
- }
191
- for _, v := range chart.Vars {
192
- _, ok := ms[v.ID]
193
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
194
- }
195
- }
196
-}
197
-
198
-func ensureCollectedProcessesAddedToCharts(t *testing.T, supvr *Supervisord) {
199
- for group := range supvr.cache {
200
- for _, c := range *newProcGroupCharts(group) {
201
- assert.NotNilf(t, supvr.Charts().Get(c.ID), "'%s' chart is not in charts", c.ID)
202
- }
203
- }
204
-}
205
-
181
func prepareSupervisordSuccessOnGetAllProcessInfo(t *testing.T) *Supervisord {
182
supvr := New()
183
require.NoError(t, supvr.Init())
src/go/plugin/go.d/modules/systemdunits/systemdunits_test.go
+1
-17
@@ -862,7 +862,7 @@ func TestSystemdUnits_Collect(t *testing.T) {
862
863
assert.Equal(t, test.wantCollected, mx)
864
if len(test.wantCollected) > 0 {
865
- ensureCollectedHasAllChartsDimsVarsIDs(t, systemd, mx)
865
+ module.TestMetricsHasAllChartsDims(t, systemd.Charts(), mx)
866
}
867
})
868
}
@@ -884,22 +884,6 @@ func TestSystemdUnits_connectionReuse(t *testing.T) {
884
assert.Equal(t, 1, client.connectCalls)
885
}
886
887
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, sd *SystemdUnits, collected map[string]int64) {
888
- for _, chart := range *sd.Charts() {
889
- if chart.Obsolete {
890
- continue
891
- }
892
- for _, dim := range chart.Dims {
893
- _, ok := collected[dim.ID]
894
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
895
- }
896
- for _, v := range chart.Vars {
897
- _, ok := collected[v.ID]
898
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
899
- }
900
- }
901
-}
902
-
887
func prepareOKClient(ver int) *mockClient {
888
return &mockClient{
889
conn: &mockConn{
src/go/plugin/go.d/modules/traefik/traefik_test.go
+4
-20
@@ -241,13 +241,13 @@ func TestTraefik_Collect(t *testing.T) {
241
tk, cleanup := test.prepare(t)
242
defer cleanup()
243
244
- var ms map[string]int64
244
+ var mx map[string]int64
245
for _, want := range test.wantCollected {
246
- ms = tk.Collect()
247
- assert.Equal(t, want, ms)
246
+ mx = tk.Collect()
247
+ assert.Equal(t, want, mx)
248
}
249
if len(test.wantCollected) > 0 {
250
- ensureCollectedHasAllChartsDimsVarsIDs(t, tk, ms)
250
+ module.TestMetricsHasAllChartsDims(t, tk.Charts(), mx)
251
}
252
})
253
}
@@ -352,19 +352,3 @@ func prepareCaseConnectionRefused(t *testing.T) (*Traefik, func()) {
352
353
return h, func() {}
354
}
355
-
356
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, tk *Traefik, ms map[string]int64) {
357
- for _, chart := range *tk.Charts() {
358
- if chart.Obsolete {
359
- continue
360
- }
361
- for _, dim := range chart.Dims {
362
- _, ok := ms[dim.ID]
363
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", dim.ID, chart.ID)
364
- }
365
- for _, v := range chart.Vars {
366
- _, ok := ms[v.ID]
367
- assert.Truef(t, ok, "chart '%s' dim '%s': no dim in collected", v.ID, chart.ID)
368
- }
369
- }
370
-}
src/go/plugin/go.d/modules/unbound/unbound_test.go
+4
-18
@@ -269,11 +269,13 @@ func (m mockUnboundClient) Command(_ string, process socket.Processor) error {
269
return nil
270
}
271
272
-func testCharts(t *testing.T, unbound *Unbound, collected map[string]int64) {
272
+func testCharts(t *testing.T, unbound *Unbound, mx map[string]int64) {
273
t.Helper()
274
ensureChartsCreatedForEveryThread(t, unbound)
275
ensureExtendedChartsCreated(t, unbound)
276
- ensureCollectedHasAllChartsDimsVarsIDs(t, unbound, collected)
276
+ module.TestMetricsHasAllChartsDimsSkip(t, unbound.Charts(), mx, func(_ *module.Chart, dim *module.Dim) bool {
277
+ return dim.ID == "mem.mod.ipsecmod"
278
+ })
279
}
280
281
func ensureChartsCreatedForEveryThread(t *testing.T, u *Unbound) {
@@ -318,22 +320,6 @@ func ensureExtendedChartsCreated(t *testing.T, u *Unbound) {
320
}
321
}
322
321
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, u *Unbound, collected map[string]int64) {
322
- for _, chart := range *u.Charts() {
323
- for _, dim := range chart.Dims {
324
- if dim.ID == "mem.mod.ipsecmod" {
325
- continue
326
- }
327
- _, ok := collected[dim.ID]
328
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
329
- }
330
- for _, v := range chart.Vars {
331
- _, ok := collected[v.ID]
332
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
333
- }
334
- }
335
-}
336
-
323
var (
324
expectedCommon = map[string]int64{
325
"thread0.num.cachehits": 21,
src/go/plugin/go.d/modules/vsphere/vsphere_test.go
+3
-16
@@ -330,9 +330,9 @@ func TestVSphere_Collect(t *testing.T) {
330
"vm-72_sys.uptime.latest": 200,
331
}
332
333
- collected := vSphere.Collect()
333
+ mx := vSphere.Collect()
334
335
- require.Equal(t, expected, collected)
335
+ require.Equal(t, expected, mx)
336
337
count := model.Count()
338
assert.Len(t, vSphere.discoveredHosts, count.Host)
@@ -340,7 +340,7 @@ func TestVSphere_Collect(t *testing.T) {
340
assert.Len(t, vSphere.charted, count.Host+count.Machine)
341
342
assert.Len(t, *vSphere.Charts(), count.Host*len(hostChartsTmpl)+count.Machine*len(vmChartsTmpl))
343
- ensureCollectedHasAllChartsDimsVarsIDs(t, vSphere, collected)
343
+ module.TestMetricsHasAllChartsDims(t, vSphere.Charts(), mx)
344
}
345
346
func TestVSphere_Collect_RemoveHostsVMsInRuntime(t *testing.T) {
@@ -421,19 +421,6 @@ func TestVSphere_Collect_Run(t *testing.T) {
421
assert.Len(t, *vSphere.charts, count.Host*len(hostChartsTmpl)+count.Machine*len(vmChartsTmpl))
422
}
423
424
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, vSphere *VSphere, collected map[string]int64) {
425
- for _, chart := range *vSphere.Charts() {
426
- for _, dim := range chart.Dims {
427
- _, ok := collected[dim.ID]
428
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
429
- }
430
- for _, v := range chart.Vars {
431
- _, ok := collected[v.ID]
432
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
433
- }
434
- }
435
-}
436
-
424
func prepareVSphereSim(t *testing.T) (vSphere *VSphere, model *simulator.Model, teardown func()) {
425
model, srv := createSim(t)
426
vSphere = New()
src/go/plugin/go.d/modules/whoisquery/whoisquery_test.go
+4
-17
@@ -101,7 +101,7 @@ func TestWhoisQuery_Collect(t *testing.T) {
101
require.NoError(t, whoisquery.Init())
102
whoisquery.prov = &mockProvider{remTime: 12345}
103
104
- collected := whoisquery.Collect()
104
+ mx := whoisquery.Collect()
105
106
expected := map[string]int64{
107
"expiry": 12345,
@@ -109,9 +109,9 @@ func TestWhoisQuery_Collect(t *testing.T) {
109
"days_until_expiration_critical": 15,
110
}
111
112
- assert.NotZero(t, collected)
113
- assert.Equal(t, expected, collected)
114
- ensureCollectedHasAllChartsDimsVarsIDs(t, whoisquery, collected)
112
+ assert.NotZero(t, mx)
113
+ assert.Equal(t, expected, mx)
114
+ module.TestMetricsHasAllChartsDims(t, whoisquery.Charts(), mx)
115
}
116
117
func TestWhoisQuery_Collect_ReturnsNilOnProviderError(t *testing.T) {
@@ -123,19 +123,6 @@ func TestWhoisQuery_Collect_ReturnsNilOnProviderError(t *testing.T) {
123
assert.Nil(t, whoisquery.Collect())
124
}
125
126
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, whoisquery *WhoisQuery, collected map[string]int64) {
127
- for _, chart := range *whoisquery.Charts() {
128
- for _, dim := range chart.Dims {
129
- _, ok := collected[dim.ID]
130
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
131
- }
132
- for _, v := range chart.Vars {
133
- _, ok := collected[v.ID]
134
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
135
- }
136
- }
137
-}
138
-
126
type mockProvider struct {
127
remTime float64
128
err bool
src/go/plugin/go.d/modules/x509check/x509check_test.go
+3
-16
@@ -130,10 +130,10 @@ func TestX509Check_Collect(t *testing.T) {
130
require.NoError(t, x509Check.Init())
131
x509Check.prov = &mockProvider{certs: []*x509.Certificate{{}}}
132
133
- collected := x509Check.Collect()
133
+ mx := x509Check.Collect()
134
135
- assert.NotZero(t, collected)
136
- ensureCollectedHasAllChartsDimsVarsIDs(t, x509Check, collected)
135
+ assert.NotZero(t, mx)
136
+ module.TestMetricsHasAllChartsDims(t, x509Check.Charts(), mx)
137
}
138
139
func TestX509Check_Collect_ReturnsNilOnProviderError(t *testing.T) {
@@ -151,19 +151,6 @@ func TestX509Check_Collect_ReturnsNilOnZeroCertificates(t *testing.T) {
151
assert.Nil(t, mx)
152
}
153
154
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, x509Check *X509Check, collected map[string]int64) {
155
- for _, chart := range *x509Check.Charts() {
156
- for _, dim := range chart.Dims {
157
- _, ok := collected[dim.ID]
158
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
159
- }
160
- for _, v := range chart.Vars {
161
- _, ok := collected[v.ID]
162
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
163
- }
164
- }
165
-}
166
-
154
type mockProvider struct {
155
certs []*x509.Certificate
156
err bool
src/go/plugin/go.d/modules/zfspool/zfspool_test.go
+1
-1
@@ -388,7 +388,7 @@ func TestZFSPool_Collect(t *testing.T) {
388
389
assert.Len(t, *zp.Charts(), want, "want charts")
390
391
- module.TestMetricsHasAllChartsDimsSkip(t, zp.Charts(), mx, func(chart *module.Chart) bool {
391
+ module.TestMetricsHasAllChartsDimsSkip(t, zp.Charts(), mx, func(chart *module.Chart, _ *module.Dim) bool {
392
return strings.HasPrefix(chart.ID, "zfspool_zion") && !strings.HasSuffix(chart.ID, "health_state")
393
})
394
}
src/go/plugin/go.d/modules/zookeeper/zookeeper_test.go
+3
-19
@@ -99,10 +99,10 @@ func TestZookeeper_Collect(t *testing.T) {
99
"znode_count": 5,
100
}
101
102
- collected := job.Collect()
102
+ mx := job.Collect()
103
104
- assert.Equal(t, expected, collected)
105
- ensureCollectedHasAllChartsDimsVarsIDs(t, job, collected)
104
+ assert.Equal(t, expected, mx)
105
+ module.TestMetricsHasAllChartsDims(t, job.Charts(), mx)
106
}
107
108
func TestZookeeper_CollectMntrNotInWhiteList(t *testing.T) {
@@ -137,22 +137,6 @@ func TestZookeeper_CollectMntrReceiveError(t *testing.T) {
137
assert.Nil(t, job.Collect())
138
}
139
140
-func ensureCollectedHasAllChartsDimsVarsIDs(t *testing.T, zk *Zookeeper, collected map[string]int64) {
141
- for _, chart := range *zk.Charts() {
142
- if chart.Obsolete {
143
- continue
144
- }
145
- for _, dim := range chart.Dims {
146
- _, ok := collected[dim.ID]
147
- assert.Truef(t, ok, "collected metrics has no data for dim '%s' chart '%s'", dim.ID, chart.ID)
148
- }
149
- for _, v := range chart.Vars {
150
- _, ok := collected[v.ID]
151
- assert.Truef(t, ok, "collected metrics has no data for var '%s' chart '%s'", v.ID, chart.ID)
152
- }
153
- }
154
-}
155
-
140
type mockZookeeperFetcher struct {
141
data []byte
142
err bool