Merge pull request from mothership/fix/mothershipper/support-alt-scheme

Supports alternate postgres:// prefix in URLs
This commit is contained in:
Joe Adams 2023-04-24 18:18:36 -04:00 committed by GitHub
commit fb316ad4ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 2 deletions
cmd/postgres_exporter
config

View File

@ -35,7 +35,7 @@ func (e *Exporter) discoverDatabaseDSNs() []string {
var dsnURI *url.URL
var dsnConnstring string
if strings.HasPrefix(dsn, "postgresql://") {
if strings.HasPrefix(dsn, "postgresql://") || strings.HasPrefix(dsn, "postgres://") {
var err error
dsnURI, err = url.Parse(dsn)
if err != nil {

View File

@ -65,7 +65,7 @@ func (d DSN) GetConnectionString() string {
// dsnFromString parses a connection string into a dsn. It will attempt to parse the string as
// a URL and as a set of key=value pairs. If both attempts fail, dsnFromString will return an error.
func dsnFromString(in string) (DSN, error) {
if strings.HasPrefix(in, "postgresql://") {
if strings.HasPrefix(in, "postgresql://") || strings.HasPrefix(in, "postgres://") {
return dsnFromURL(in)
}

View File

@ -186,6 +186,19 @@ func Test_dsnFromString(t *testing.T) {
},
wantErr: false,
},
{
name: "Alternative URL prefix",
input: "postgres://user:s3cret@host.example.com:5432/tsdb?user=postgres",
want: DSN{
scheme: "postgres",
host: "host.example.com:5432",
path: "/tsdb",
query: url.Values{},
username: "user",
password: "s3cret",
},
wantErr: false,
},
{
name: "URL with user and password in query string",
input: "postgresql://host.example.com:5432/tsdb?user=postgres&password=s3cr3t",