@cryptotaxi247 / netdata-1 / commits / ff8feb3f7

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