From 2ba33ac2048b77b134c3c6251f9167ce1f78df1e Mon Sep 17 00:00:00 2001 From: Daniel Date: Thu, 31 Oct 2019 15:37:02 +0700 Subject: [PATCH] Don't stop generating fingerprint while encountering value with "=" sign --- cmd/postgres_exporter/postgres_exporter.go | 2 +- cmd/postgres_exporter/postgres_exporter_test.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/postgres_exporter/postgres_exporter.go b/cmd/postgres_exporter/postgres_exporter.go index 7ecab7c20..e78c9b87e 100644 --- a/cmd/postgres_exporter/postgres_exporter.go +++ b/cmd/postgres_exporter/postgres_exporter.go @@ -708,7 +708,7 @@ func parseFingerprint(url string) (string, error) { pairs := strings.Split(dsn, " ") kv := make(map[string]string, len(pairs)) for _, pair := range pairs { - splitted := strings.Split(pair, "=") + splitted := strings.SplitN(pair, "=", 2) if len(splitted) != 2 { return "", fmt.Errorf("malformed dsn %q", dsn) } diff --git a/cmd/postgres_exporter/postgres_exporter_test.go b/cmd/postgres_exporter/postgres_exporter_test.go index 63cbbd8e2..5a0529b6d 100644 --- a/cmd/postgres_exporter/postgres_exporter_test.go +++ b/cmd/postgres_exporter/postgres_exporter_test.go @@ -193,6 +193,10 @@ func (s *FunctionalSuite) TestParseFingerprint(c *C) { url: "postgresql://userDsn:passwordDsn@localhost:55432/?sslmode=disabled", fingerprint: "localhost:55432", }, + { + url: "postgresql://userDsn:passwordDsn%3D@localhost:55432/?sslmode=disabled", + fingerprint: "localhost:55432", + }, { url: "port=1234", fingerprint: "localhost:1234",