@@ -46,31 +46,36 @@ func TestDiagnosticDataCollector(t *testing.T) {
4646 logger := logrus .New ()
4747 ti := labelsGetterMock {}
4848
49- c := newDiagnosticDataCollector (ctx , client , logger , false , ti )
49+ dbBuildInfo , err := retrieveMongoDBBuildInfo (ctx , client , logger .WithField ("component" , "test" ))
50+ require .NoError (t , err )
51+
52+ c := newDiagnosticDataCollector (ctx , client , logger , false , ti , dbBuildInfo )
53+
54+ prefix := "local.oplog.rs.stats.storageStats.wiredTiger"
55+ if dbBuildInfo .VersionArray [0 ] < 7 {
56+ prefix = "local.oplog.rs.stats.wiredTiger"
57+ }
5058
5159 // The last \n at the end of this string is important
52- expected := strings .NewReader (`
53- # HELP mongodb_oplog_stats_ok local.oplog.rs.stats.
54- # TYPE mongodb_oplog_stats_ok untyped
55- mongodb_oplog_stats_ok 1
56- # HELP mongodb_oplog_stats_wt_btree_fixed_record_size local.oplog.rs.stats.wiredTiger.btree.
60+ expectedString := fmt .Sprintf (`
61+ # HELP mongodb_oplog_stats_wt_btree_fixed_record_size %s.btree.
5762 # TYPE mongodb_oplog_stats_wt_btree_fixed_record_size untyped
5863 mongodb_oplog_stats_wt_btree_fixed_record_size 0
59- # HELP mongodb_oplog_stats_wt_transaction_update_conflicts local.oplog.rs.stats.wiredTiger .transaction.
64+ # HELP mongodb_oplog_stats_wt_transaction_update_conflicts %s .transaction.
6065 # TYPE mongodb_oplog_stats_wt_transaction_update_conflicts untyped
61- mongodb_oplog_stats_wt_transaction_update_conflicts 0` + "\n " )
66+ mongodb_oplog_stats_wt_transaction_update_conflicts 0` , prefix , prefix )
67+ expected := strings .NewReader (expectedString + "\n " )
6268
6369 // Filter metrics for 2 reasons:
6470 // 1. The result is huge
6571 // 2. We need to check against know values. Don't use metrics that return counters like uptime
6672 // or counters like the number of transactions because they won't return a known value to compare
6773 filter := []string {
68- "mongodb_oplog_stats_ok" ,
6974 "mongodb_oplog_stats_wt_btree_fixed_record_size" ,
7075 "mongodb_oplog_stats_wt_transaction_update_conflicts" ,
7176 }
7277
73- err : = testutil .CollectAndCompare (c , expected , filter ... )
78+ err = testutil .CollectAndCompare (c , expected , filter ... )
7479 assert .NoError (t , err )
7580}
7681
@@ -188,7 +193,10 @@ func TestCollectorWithCompatibleMode(t *testing.T) {
188193 logger := logrus .New ()
189194 ti := labelsGetterMock {}
190195
191- c := newDiagnosticDataCollector (ctx , client , logger , true , ti )
196+ dbBuildInfo , err := retrieveMongoDBBuildInfo (ctx , client , logger .WithField ("component" , "test" ))
197+ require .NoError (t , err )
198+
199+ c := newDiagnosticDataCollector (ctx , client , logger , true , ti , dbBuildInfo )
192200
193201 err = testutil .CollectAndCompare (c , tt .expectedMetrics (), tt .metricsFilter ... )
194202 assert .NoError (t , err )
@@ -202,12 +210,16 @@ func TestAllDiagnosticDataCollectorMetrics(t *testing.T) {
202210
203211 client := tu .DefaultTestClient (ctx , t )
204212
205- ti := newTopologyInfo (ctx , client , logrus .New ())
213+ logger := logrus .New ()
214+ ti := newTopologyInfo (ctx , client , logger )
206215
207- c := newDiagnosticDataCollector (ctx , client , logrus .New (), true , ti )
216+ dbBuildInfo , err := retrieveMongoDBBuildInfo (ctx , client , logger .WithField ("component" , "test" ))
217+ require .NoError (t , err )
218+
219+ c := newDiagnosticDataCollector (ctx , client , logger , true , ti , dbBuildInfo )
208220
209221 reg := prometheus .NewRegistry ()
210- err : = reg .Register (c )
222+ err = reg .Register (c )
211223 require .NoError (t , err )
212224 metrics := helpers .CollectMetrics (c )
213225 actualMetrics := helpers .ReadMetrics (metrics )
@@ -281,7 +293,11 @@ func TestDiagnosticDataErrors(t *testing.T) {
281293
282294 logger , hook := logrustest .NewNullLogger ()
283295 ti := newTopologyInfo (ctx , client , logger )
284- c := newDiagnosticDataCollector (ctx , client , logger , true , ti )
296+
297+ dbBuildInfo , err := retrieveMongoDBBuildInfo (ctx , client , logger .WithField ("component" , "test" ))
298+ require .NoError (t , err )
299+
300+ c := newDiagnosticDataCollector (ctx , client , logger , true , ti , dbBuildInfo )
285301
286302 reg := prometheus .NewRegistry ()
287303 err = reg .Register (c )
@@ -318,19 +334,23 @@ func TestContextTimeout(t *testing.T) {
318334
319335 client := tu .DefaultTestClient (ctx , t )
320336
321- ti := newTopologyInfo (ctx , client , logrus .New ())
337+ logger := logrus .New ()
338+ ti := newTopologyInfo (ctx , client , logger )
339+
340+ dbBuildInfo , err := retrieveMongoDBBuildInfo (ctx , client , logger .WithField ("component" , "test" ))
341+ require .NoError (t , err )
322342
323343 dbCount := 100
324344
325- err : = addTestData (ctx , client , dbCount )
345+ err = addTestData (ctx , client , dbCount )
326346 assert .NoError (t , err )
327347
328348 defer cleanTestData (ctx , client , dbCount ) //nolint:errcheck
329349
330350 cctx , ccancel := context .WithCancel (context .Background ())
331351 ccancel ()
332352
333- c := newDiagnosticDataCollector (cctx , client , logrus . New () , true , ti )
353+ c := newDiagnosticDataCollector (cctx , client , logger , true , ti , dbBuildInfo )
334354 // it should not panic
335355 helpers .CollectMetrics (c )
336356}
@@ -403,7 +423,7 @@ func cleanTestData(ctx context.Context, client *mongo.Client, count int) error {
403423}
404424
405425func TestDisconnectedDiagnosticDataCollector (t * testing.T ) {
406- ctx , cancel := context .WithTimeout (context .Background (), 3 * time .Second )
426+ ctx , cancel := context .WithTimeout (context .Background (), 5 * time .Second )
407427 defer cancel ()
408428
409429 client := tu .DefaultTestClient (ctx , t )
@@ -415,7 +435,10 @@ func TestDisconnectedDiagnosticDataCollector(t *testing.T) {
415435
416436 ti := labelsGetterMock {}
417437
418- c := newDiagnosticDataCollector (ctx , client , logger , true , ti )
438+ dbBuildInfo , err := retrieveMongoDBBuildInfo (ctx , client , logger .WithField ("component" , "test" ))
439+ require .Error (t , err )
440+
441+ c := newDiagnosticDataCollector (ctx , client , logger , true , ti , dbBuildInfo )
419442
420443 // The last \n at the end of this string is important
421444 expected := strings .NewReader (`
0 commit comments