Skip to content

Commit 4192db7

Browse files
committed
If unable to ping Oracle, try to reconnect before giving up.
1 parent 44ca331 commit 4192db7

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

main.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,20 @@ func (e *Exporter) scrape(ch chan<- prometheus.Metric) {
166166
noop := func(row map[string]string) error { return nil }
167167
if err = GeneratePrometheusMetrics(e.db, noop, "SELECT 1 FROM DUAL"); err != nil {
168168
log.Errorln("Error pinging oracle:", err)
169-
e.up.Set(0)
170-
return
169+
// Maybe Oracle instance was restarted => try to reconnect
170+
// fix https://github.com/iamseth/oracledb_exporter/issues/32
171+
log.Infoln("Try to reconnect...")
172+
e.db, err = sql.Open("oci8", e.dsn)
173+
if err != nil {
174+
log.Errorln("Error while connecting to oracle:", err)
175+
e.up.Set(0)
176+
return
177+
}
178+
if err = GeneratePrometheusMetrics(e.db, noop, "SELECT 1 FROM DUAL"); err != nil {
179+
log.Error("Unable to connect to oracle:", err)
180+
e.up.Set(0)
181+
return
182+
}
171183
}
172184
e.up.Set(1)
173185

0 commit comments

Comments
 (0)