diff --git a/pgpool2_exporter.go b/pgpool2_exporter.go index 42aad06..f190475 100644 --- a/pgpool2_exporter.go +++ b/pgpool2_exporter.go @@ -26,11 +26,14 @@ import ( "database/sql" "errors" "fmt" + "io/ioutil" + "log" "math" "net/url" "os" "regexp" "strconv" + "strings" "sync" "time" @@ -637,6 +640,16 @@ func MaskPassword(dsn string) string { if err != nil { return "could not parse DATA_SOURCE_NAME" } + // file content from file DATA_SOURCE_NAME_FILE + if filename := os.Getenv("DATA_SOURCE_NAME_FILE"); filename != "" { + if fileContents, err := ioutil.ReadFile(filename); err != nil { + log.Fatal(err) + } else { + dsn = strings.TrimSpace(string(fileContents)) + } + } else { + dsn = os.Getenv("DATA_SOURCE_NAME") + } // Mask user password in DSN if pDSN.User != nil { pDSN.User = url.UserPassword(pDSN.User.Username(), "MASKED_PASSWORD")