Skip to content

Commit 3785857

Browse files
committed
PMM-12894 Fix metrics for master db
1 parent 27e91bb commit 3785857

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

cmd/postgres_exporter/datasource.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,16 @@ func (e *Exporter) discoverDatabaseDSNs() []string {
4848
level.Error(logger).Log("msg", "Unable to parse DSN as either URI or connstring", "dsn", loggableDSN(dsn))
4949
continue
5050
}
51+
dsns[dsn] = struct{}{}
52+
53+
// If autoDiscoverDatabases is true, set first dsn as master database (Default: false)
54+
e.masterDSN = dsn
5155

5256
databaseNames, err := e.getDatabaseNames(dsn)
5357
if err != nil {
5458
continue
5559
}
60+
5661
for _, databaseName := range databaseNames {
5762
if contains(e.excludeDatabases, databaseName) {
5863
continue
@@ -104,9 +109,6 @@ func (e *Exporter) getDatabaseNames(dsn string) ([]string, error) {
104109
}
105110
defer server.Close()
106111

107-
// If autoDiscoverDatabases is true, set first dsn as master database (Default: false)
108-
server.master = true
109-
110112
dbNames, err := queryDatabases(e.ctx, server)
111113
if err != nil {
112114
level.Error(logger).Log("msg", "Error querying databases", "dsn", loggableDSN(dsn), "err", err)
@@ -124,7 +126,7 @@ func (e *Exporter) scrapeDSN(ch chan<- prometheus.Metric, dsn string) error {
124126
defer server.Close()
125127

126128
// Check if autoDiscoverDatabases is false, set dsn as master database (Default: false)
127-
if !e.autoDiscoverDatabases {
129+
if !e.autoDiscoverDatabases || e.masterDSN == dsn {
128130
server.master = true
129131
}
130132

cmd/postgres_exporter/postgres_exporter.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,9 @@ type Exporter struct {
438438
// servers contains metrics map and query overrides.
439439
// servers *Servers
440440

441-
connSema *semaphore.Weighted
442-
ctx context.Context
441+
connSema *semaphore.Weighted
442+
ctx context.Context
443+
masterDSN string
443444
}
444445

445446
// ExporterOpt configures Exporter.

0 commit comments

Comments
 (0)