Add last_scrape_connection_error metric.
This metric is only set to 0 after the database has been connected to and a Ping() request via the pg driver has been successfully sent. Closes #135.
This commit is contained in:
parent
93f9646385
commit
df3a71eb79
|
@ -661,7 +661,9 @@ func dbToString(t interface{}) (string, bool) {
|
|||
type Exporter struct {
|
||||
dsn string
|
||||
userQueriesPath string
|
||||
duration, error prometheus.Gauge
|
||||
duration prometheus.Gauge
|
||||
error prometheus.Gauge
|
||||
connectionError prometheus.Gauge
|
||||
userQueriesError *prometheus.GaugeVec
|
||||
totalScrapes prometheus.Counter
|
||||
|
||||
|
@ -703,6 +705,12 @@ func NewExporter(dsn string, userQueriesPath string) *Exporter {
|
|||
Name: "last_scrape_error",
|
||||
Help: "Whether the last scrape of metrics from PostgreSQL resulted in an error (1 for error, 0 for success).",
|
||||
}),
|
||||
connectionError: prometheus.NewGauge(prometheus.GaugeOpts{
|
||||
Namespace: namespace,
|
||||
Subsystem: exporter,
|
||||
Name: "last_scrape_connection_error",
|
||||
Help: "Whether the last scrape of metrics from PostgreSQL was able to connect to the server (1 for error, 0 for success).",
|
||||
}),
|
||||
userQueriesError: prometheus.NewGaugeVec(prometheus.GaugeOpts{
|
||||
Namespace: namespace,
|
||||
Subsystem: exporter,
|
||||
|
@ -955,12 +963,16 @@ func (e *Exporter) getDB(conn string) (*sql.DB, error) {
|
|||
if e.dbConnection == nil {
|
||||
d, err := sql.Open("postgres", conn)
|
||||
if err != nil {
|
||||
e.connectionError.Set(1)
|
||||
return nil, err
|
||||
}
|
||||
err = d.Ping()
|
||||
if err != nil {
|
||||
e.connectionError.Set(1)
|
||||
return nil, err
|
||||
}
|
||||
e.connectionError.Set(0)
|
||||
|
||||
d.SetMaxOpenConns(1)
|
||||
d.SetMaxIdleConns(1)
|
||||
e.dbConnection = d
|
||||
|
|
Loading…
Reference in New Issue