fix-param-env-key fix spelling of env parameter

This commit is contained in:
Anthony Regeda 2018-12-20 12:54:24 +03:00 committed by Will Rouesnel
parent 1d6a733ba2
commit 6d2cae6fa8
2 changed files with 81 additions and 1 deletions

View File

@ -39,7 +39,7 @@ var (
disableSettingsMetrics = kingpin.Flag("disable-settings-metrics", "Do not include pg_settings metrics.").Default("false").OverrideDefaultFromEnvar("PG_EXPORTER_DISABLE_SETTINGS_METRICS").Bool()
queriesPath = kingpin.Flag("extend.query-path", "Path to custom queries to run.").Default("").OverrideDefaultFromEnvar("PG_EXPORTER_EXTEND_QUERY_PATH").String()
onlyDumpMaps = kingpin.Flag("dumpmaps", "Do not run, simply dump the maps.").Bool()
constantLabelsList = kingpin.Flag("constantLabels", "A list of label=value separated by comma(,).").Default("").OverrideDefaultFromEnvar("PG_EXPORTER_CONTANT_LABELS").String()
constantLabelsList = kingpin.Flag("constantLabels", "A list of label=value separated by comma(,).").Default("").OverrideDefaultFromEnvar("PG_EXPORTER_CONSTANT_LABELS").String()
)
// Metric name parts.
@ -927,6 +927,11 @@ func WithConstantLabels(s string) ExporterOpt {
func parseConstLabels(s string) prometheus.Labels {
labels := make(prometheus.Labels)
s = strings.TrimSpace(s)
if len(s) == 0 {
return labels
}
parts := strings.Split(s, ",")
for _, p := range parts {
keyValue := strings.Split(strings.TrimSpace(p), "=")

View File

@ -3,6 +3,7 @@
package main
import (
"reflect"
"testing"
. "gopkg.in/check.v1"
@ -184,6 +185,80 @@ func (s *FunctionalSuite) TestPostgresVersionParsing(c *C) {
}
}
func (s *FunctionalSuite) TestParseFingerprint(c *C) {
cases := []struct {
url string
fingerprint string
err string
}{
{
url: "postgresql://userDsn:passwordDsn@localhost:55432/?sslmode=disabled",
fingerprint: "localhost:55432",
},
{
url: "port=1234",
fingerprint: "localhost:1234",
},
{
url: "host=example",
fingerprint: "example:5432",
},
{
url: "xyz",
err: "malformed dsn \"xyz\"",
},
}
for _, cs := range cases {
f, err := parseFingerprint(cs.url)
if cs.err == "" {
c.Assert(err, IsNil)
} else {
c.Assert(err, NotNil)
c.Assert(err.Error(), Equals, cs.err)
}
c.Assert(f, Equals, cs.fingerprint)
}
}
func (s *FunctionalSuite) TestParseConstLabels(c *C) {
cases := []struct {
s string
labels prometheus.Labels
}{
{
s: "a=b",
labels: prometheus.Labels{
"a": "b",
},
},
{
s: "",
labels: prometheus.Labels{},
},
{
s: "a=b, c=d",
labels: prometheus.Labels{
"a": "b",
"c": "d",
},
},
{
s: "a=b, xyz",
labels: prometheus.Labels{
"a": "b",
},
},
}
for _, cs := range cases {
labels := parseConstLabels(cs.s)
if !reflect.DeepEqual(labels, cs.labels) {
c.Fatalf("labels not equal (%v -> %v)", labels, cs.labels)
}
}
}
func UnsetEnvironment(c *C, d string) {
err := os.Unsetenv(d)
c.Assert(err, IsNil)