@@ -18,6 +18,7 @@ import (
18
18
"time"
19
19
20
20
"github.com/DATA-DOG/go-sqlmock"
21
+ "github.com/blang/semver/v4"
21
22
"github.com/go-kit/log"
22
23
"github.com/prometheus/client_golang/prometheus"
23
24
dto "github.com/prometheus/client_model/go"
@@ -31,7 +32,7 @@ func TestPGStatDatabaseCollector(t *testing.T) {
31
32
}
32
33
defer db .Close ()
33
34
34
- inst := & instance {db : db }
35
+ inst := & instance {db : db , version : semver . MustParse ( "14.0.0" ) }
35
36
36
37
columns := []string {
37
38
"datid" ,
@@ -52,8 +53,8 @@ func TestPGStatDatabaseCollector(t *testing.T) {
52
53
"deadlocks" ,
53
54
"blk_read_time" ,
54
55
"blk_write_time" ,
55
- "active_time" ,
56
56
"stats_reset" ,
57
+ "active_time" ,
57
58
}
58
59
59
60
srT , err := time .Parse ("2006-01-02 15:04:05.00000-07" , "2023-05-25 17:10:42.81132-07" )
@@ -81,10 +82,11 @@ func TestPGStatDatabaseCollector(t *testing.T) {
81
82
925 ,
82
83
16 ,
83
84
823 ,
85
+ srT ,
84
86
33 ,
85
- srT )
87
+ )
86
88
87
- mock .ExpectQuery (sanitizeQuery (statDatabaseQuery )).WillReturnRows (rows )
89
+ mock .ExpectQuery (sanitizeQuery (statDatabaseQuery ( columns ) )).WillReturnRows (rows )
88
90
89
91
ch := make (chan prometheus.Metric )
90
92
go func () {
@@ -115,8 +117,8 @@ func TestPGStatDatabaseCollector(t *testing.T) {
115
117
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 925 },
116
118
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 16 },
117
119
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 823 },
118
- {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.033 },
119
120
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 1685059842 },
121
+ {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.033 },
120
122
}
121
123
122
124
convey .Convey ("Metrics comparison" , t , func () {
@@ -141,7 +143,7 @@ func TestPGStatDatabaseCollectorNullValues(t *testing.T) {
141
143
if err != nil {
142
144
t .Fatalf ("Error parsing time: %s" , err )
143
145
}
144
- inst := & instance {db : db }
146
+ inst := & instance {db : db , version : semver . MustParse ( "14.0.0" ) }
145
147
146
148
columns := []string {
147
149
"datid" ,
@@ -162,8 +164,8 @@ func TestPGStatDatabaseCollectorNullValues(t *testing.T) {
162
164
"deadlocks" ,
163
165
"blk_read_time" ,
164
166
"blk_write_time" ,
165
- "active_time" ,
166
167
"stats_reset" ,
168
+ "active_time" ,
167
169
}
168
170
169
171
rows := sqlmock .NewRows (columns ).
@@ -186,8 +188,9 @@ func TestPGStatDatabaseCollectorNullValues(t *testing.T) {
186
188
925 ,
187
189
16 ,
188
190
823 ,
191
+ srT ,
189
192
32 ,
190
- srT ).
193
+ ).
191
194
AddRow (
192
195
"pid" ,
193
196
"postgres" ,
@@ -207,9 +210,10 @@ func TestPGStatDatabaseCollectorNullValues(t *testing.T) {
207
210
925 ,
208
211
16 ,
209
212
823 ,
213
+ srT ,
210
214
32 ,
211
- srT )
212
- mock .ExpectQuery (sanitizeQuery (statDatabaseQuery )).WillReturnRows (rows )
215
+ )
216
+ mock .ExpectQuery (sanitizeQuery (statDatabaseQuery ( columns ) )).WillReturnRows (rows )
213
217
214
218
ch := make (chan prometheus.Metric )
215
219
go func () {
@@ -240,8 +244,8 @@ func TestPGStatDatabaseCollectorNullValues(t *testing.T) {
240
244
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 925 },
241
245
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 16 },
242
246
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 823 },
243
- {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.032 },
244
247
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 1685059842 },
248
+ {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.032 },
245
249
}
246
250
247
251
convey .Convey ("Metrics comparison" , t , func () {
@@ -261,7 +265,7 @@ func TestPGStatDatabaseCollectorRowLeakTest(t *testing.T) {
261
265
}
262
266
defer db .Close ()
263
267
264
- inst := & instance {db : db }
268
+ inst := & instance {db : db , version : semver . MustParse ( "14.0.0" ) }
265
269
266
270
columns := []string {
267
271
"datid" ,
@@ -282,8 +286,8 @@ func TestPGStatDatabaseCollectorRowLeakTest(t *testing.T) {
282
286
"deadlocks" ,
283
287
"blk_read_time" ,
284
288
"blk_write_time" ,
285
- "active_time" ,
286
289
"stats_reset" ,
290
+ "active_time" ,
287
291
}
288
292
289
293
srT , err := time .Parse ("2006-01-02 15:04:05.00000-07" , "2023-05-25 17:10:42.81132-07" )
@@ -311,8 +315,9 @@ func TestPGStatDatabaseCollectorRowLeakTest(t *testing.T) {
311
315
925 ,
312
316
16 ,
313
317
823 ,
318
+ srT ,
314
319
14 ,
315
- srT ).
320
+ ).
316
321
AddRow (
317
322
nil ,
318
323
nil ,
@@ -354,9 +359,10 @@ func TestPGStatDatabaseCollectorRowLeakTest(t *testing.T) {
354
359
926 ,
355
360
17 ,
356
361
824 ,
362
+ srT ,
357
363
15 ,
358
- srT )
359
- mock .ExpectQuery (sanitizeQuery (statDatabaseQuery )).WillReturnRows (rows )
364
+ )
365
+ mock .ExpectQuery (sanitizeQuery (statDatabaseQuery ( columns ) )).WillReturnRows (rows )
360
366
361
367
ch := make (chan prometheus.Metric )
362
368
go func () {
@@ -387,8 +393,8 @@ func TestPGStatDatabaseCollectorRowLeakTest(t *testing.T) {
387
393
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 925 },
388
394
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 16 },
389
395
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 823 },
390
- {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.014 },
391
396
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 1685059842 },
397
+ {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.014 },
392
398
393
399
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_GAUGE , value : 355 },
394
400
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 4946 },
@@ -406,8 +412,8 @@ func TestPGStatDatabaseCollectorRowLeakTest(t *testing.T) {
406
412
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 926 },
407
413
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 17 },
408
414
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 824 },
409
- {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.015 },
410
415
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 1685059842 },
416
+ {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.015 },
411
417
}
412
418
413
419
convey .Convey ("Metrics comparison" , t , func () {
@@ -428,7 +434,7 @@ func TestPGStatDatabaseCollectorTestNilStatReset(t *testing.T) {
428
434
}
429
435
defer db .Close ()
430
436
431
- inst := & instance {db : db }
437
+ inst := & instance {db : db , version : semver . MustParse ( "14.0.0" ) }
432
438
433
439
columns := []string {
434
440
"datid" ,
@@ -449,8 +455,8 @@ func TestPGStatDatabaseCollectorTestNilStatReset(t *testing.T) {
449
455
"deadlocks" ,
450
456
"blk_read_time" ,
451
457
"blk_write_time" ,
452
- "active_time" ,
453
458
"stats_reset" ,
459
+ "active_time" ,
454
460
}
455
461
456
462
rows := sqlmock .NewRows (columns ).
@@ -473,10 +479,11 @@ func TestPGStatDatabaseCollectorTestNilStatReset(t *testing.T) {
473
479
925 ,
474
480
16 ,
475
481
823 ,
482
+ nil ,
476
483
7 ,
477
- nil )
484
+ )
478
485
479
- mock .ExpectQuery (sanitizeQuery (statDatabaseQuery )).WillReturnRows (rows )
486
+ mock .ExpectQuery (sanitizeQuery (statDatabaseQuery ( columns ) )).WillReturnRows (rows )
480
487
481
488
ch := make (chan prometheus.Metric )
482
489
go func () {
@@ -507,8 +514,8 @@ func TestPGStatDatabaseCollectorTestNilStatReset(t *testing.T) {
507
514
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 925 },
508
515
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 16 },
509
516
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 823 },
510
- {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.007 },
511
517
{labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0 },
518
+ {labels : labelMap {"datid" : "pid" , "datname" : "postgres" }, metricType : dto .MetricType_COUNTER , value : 0.007 },
512
519
}
513
520
514
521
convey .Convey ("Metrics comparison" , t , func () {
0 commit comments