@@ -18,6 +18,7 @@ import (
18
18
"database/sql"
19
19
20
20
"github.com/go-kit/log"
21
+ "github.com/lib/pq"
21
22
"github.com/prometheus/client_golang/prometheus"
22
23
)
23
24
@@ -84,17 +85,29 @@ func (PGProcessIdleCollector) Update(ctx context.Context, instance *instance, ch
84
85
var applicationName sql.NullString
85
86
var secondsSum sql.NullInt64
86
87
var secondsCount sql.NullInt64
87
- var seconds []uint64
88
- var secondsBucket []uint64
88
+ var rawSeconds []byte
89
+ var rawSecondsBucket []byte
89
90
90
- err := row .Scan (& applicationName , & secondsSum , & secondsCount , & seconds , & secondsBucket )
91
+ err := row .Scan (& applicationName , & secondsSum , & secondsCount , & rawSeconds , & rawSecondsBucket )
92
+
93
+ var seconds []float64
94
+ err = pq .Array (& seconds ).Scan (rawSeconds )
95
+ if err != nil {
96
+ return err
97
+ }
98
+
99
+ var secondsBucket []int64
100
+ err = pq .Array (& secondsBucket ).Scan (rawSecondsBucket )
101
+ if err != nil {
102
+ return err
103
+ }
91
104
92
105
var buckets = make (map [float64 ]uint64 , len (seconds ))
93
106
for i , second := range seconds {
94
107
if i >= len (secondsBucket ) {
95
108
break
96
109
}
97
- buckets [float64 ( second ) ] = secondsBucket [i ]
110
+ buckets [second ] = uint64 ( secondsBucket [i ])
98
111
}
99
112
if err != nil {
100
113
return err
0 commit comments