Skip to content
Permalink
Browse files

Discover only databases that are not templates and allow connections (#…

…297)

* Discover only databases that are not templates and allow connections

* Update readme
  • Loading branch information...
AlexisSellier authored and wrouesnel committed Aug 12, 2019
1 parent c768e64 commit 1ab8d2bbc84b1523df01dccf85bbe5807dffe984
Showing with 2 additions and 2 deletions.
  1. +1 −1 README.md
  2. +1 −1 cmd/postgres_exporter/postgres_exporter.go
@@ -163,7 +163,7 @@ flag. This removes all built-in metrics, and uses only metrics defined by querie

### Automatically discover databases
To scrape metrics from all databases on a database server, the database DSN's can be dynamically discovered via the
`--auto-discover-databases` flag. When true, `SELECT datname FROM pg_database` is run for all configured DSN's. From the
`--auto-discover-databases` flag. When true, `SELECT datname FROM pg_database WHERE datallowconn = true AND datistemplate = false` is run for all configured DSN's. From the
result a new set of DSN's is created for which the metrics are scraped.

In addition, the option `--exclude-databases` adds the possibily to filter the result from the auto discovery to discard databases you do not need.
@@ -1074,7 +1074,7 @@ func newDesc(subsystem, name, help string, labels prometheus.Labels) *prometheus
}

func queryDatabases(server *Server) ([]string, error) {
rows, err := server.db.Query("SELECT datname FROM pg_database") // nolint: safesql
rows, err := server.db.Query("SELECT datname FROM pg_database WHERE datallowconn = true AND datistemplate = false") // nolint: safesql
if err != nil {
return nil, fmt.Errorf("Error retrieving databases: %v", err)
}

0 comments on commit 1ab8d2b

Please sign in to comment.
You can’t perform that action at this time.