@@ -209,6 +209,8 @@ func (p *PgCollector) Collect(metricsCh chan<- prometheus.Metric) {
209
209
210
210
dbPool := make (map [string ][]db.DbInterface )
211
211
dbJobs := make (map [string ]chan * workerJob )
212
+
213
+ dbLoop:
212
214
for _ , dbName := range p .config .DbList () {
213
215
dbConf := p .config .Db (dbName )
214
216
workersCnt := dbConf .GetWorkers ()
@@ -219,7 +221,9 @@ func (p *PgCollector) Collect(metricsCh chan<- prometheus.Metric) {
219
221
for i := 0 ; i < workersCnt ; i ++ {
220
222
conn , err := db .New (dbConf .ConnectionString ())
221
223
if err != nil {
222
- log .Fatalf ("could not create db instance: %v" , err )
224
+ log .Printf ("could not create db instance: %v" , err )
225
+ atomic .AddUint32 (& p .errors , 1 )
226
+ break dbLoop
223
227
}
224
228
225
229
if pgVer , ok := pgVersions [dbInstance ]; ! ok {
@@ -228,7 +232,9 @@ func (p *PgCollector) Collect(metricsCh chan<- prometheus.Metric) {
228
232
} else {
229
233
pgVer , err = conn .PgVersion ()
230
234
if err != nil {
231
- log .Fatalf ("could not get postgresql version: %v" , err )
235
+ log .Printf ("could not get postgresql version: %v" , err )
236
+ atomic .AddUint32 (& p .errors , 1 )
237
+ break dbLoop
232
238
}
233
239
}
234
240
pgVersions [dbInstance ] = pgVer
@@ -237,6 +243,8 @@ func (p *PgCollector) Collect(metricsCh chan<- prometheus.Metric) {
237
243
if dbConf .StatementTimeout != 0 {
238
244
if err := conn .SetStatementTimeout (dbConf .StatementTimeout ); err != nil {
239
245
log .Printf ("could not set statement timeout for %s: %v" , dbInstance , err )
246
+ atomic .AddUint32 (& p .errors , 1 )
247
+ break dbLoop
240
248
}
241
249
}
242
250
@@ -259,6 +267,10 @@ func (p *PgCollector) Collect(metricsCh chan<- prometheus.Metric) {
259
267
wg .Wait ()
260
268
for dbName , dbs := range dbPool {
261
269
for id , dbConn := range dbs {
270
+ if dbConn == nil {
271
+ continue
272
+ }
273
+
262
274
if err := dbConn .Close (); err != nil {
263
275
log .Fatalf ("%d: could not close db connection for %q: %v" , id , dbName , err )
264
276
}
0 commit comments