Skip to content

Commit 6d2cae6

Browse files
regedawrouesnel
authored andcommitted
fix-param-env-key fix spelling of env parameter
1 parent 1d6a733 commit 6d2cae6

File tree

2 files changed

+81
-1
lines changed

2 files changed

+81
-1
lines changed

cmd/postgres_exporter/postgres_exporter.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ var (
3939
disableSettingsMetrics = kingpin.Flag("disable-settings-metrics", "Do not include pg_settings metrics.").Default("false").OverrideDefaultFromEnvar("PG_EXPORTER_DISABLE_SETTINGS_METRICS").Bool()
4040
queriesPath = kingpin.Flag("extend.query-path", "Path to custom queries to run.").Default("").OverrideDefaultFromEnvar("PG_EXPORTER_EXTEND_QUERY_PATH").String()
4141
onlyDumpMaps = kingpin.Flag("dumpmaps", "Do not run, simply dump the maps.").Bool()
42-
constantLabelsList = kingpin.Flag("constantLabels", "A list of label=value separated by comma(,).").Default("").OverrideDefaultFromEnvar("PG_EXPORTER_CONTANT_LABELS").String()
42+
constantLabelsList = kingpin.Flag("constantLabels", "A list of label=value separated by comma(,).").Default("").OverrideDefaultFromEnvar("PG_EXPORTER_CONSTANT_LABELS").String()
4343
)
4444

4545
// Metric name parts.
@@ -927,6 +927,11 @@ func WithConstantLabels(s string) ExporterOpt {
927927
func parseConstLabels(s string) prometheus.Labels {
928928
labels := make(prometheus.Labels)
929929

930+
s = strings.TrimSpace(s)
931+
if len(s) == 0 {
932+
return labels
933+
}
934+
930935
parts := strings.Split(s, ",")
931936
for _, p := range parts {
932937
keyValue := strings.Split(strings.TrimSpace(p), "=")

cmd/postgres_exporter/postgres_exporter_test.go

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package main
44

55
import (
6+
"reflect"
67
"testing"
78

89
. "gopkg.in/check.v1"
@@ -184,6 +185,80 @@ func (s *FunctionalSuite) TestPostgresVersionParsing(c *C) {
184185
}
185186
}
186187

188+
func (s *FunctionalSuite) TestParseFingerprint(c *C) {
189+
cases := []struct {
190+
url string
191+
fingerprint string
192+
err string
193+
}{
194+
{
195+
url: "postgresql://userDsn:passwordDsn@localhost:55432/?sslmode=disabled",
196+
fingerprint: "localhost:55432",
197+
},
198+
{
199+
url: "port=1234",
200+
fingerprint: "localhost:1234",
201+
},
202+
{
203+
url: "host=example",
204+
fingerprint: "example:5432",
205+
},
206+
{
207+
url: "xyz",
208+
err: "malformed dsn \"xyz\"",
209+
},
210+
}
211+
212+
for _, cs := range cases {
213+
f, err := parseFingerprint(cs.url)
214+
if cs.err == "" {
215+
c.Assert(err, IsNil)
216+
} else {
217+
c.Assert(err, NotNil)
218+
c.Assert(err.Error(), Equals, cs.err)
219+
}
220+
c.Assert(f, Equals, cs.fingerprint)
221+
}
222+
}
223+
224+
func (s *FunctionalSuite) TestParseConstLabels(c *C) {
225+
cases := []struct {
226+
s string
227+
labels prometheus.Labels
228+
}{
229+
{
230+
s: "a=b",
231+
labels: prometheus.Labels{
232+
"a": "b",
233+
},
234+
},
235+
{
236+
s: "",
237+
labels: prometheus.Labels{},
238+
},
239+
{
240+
s: "a=b, c=d",
241+
labels: prometheus.Labels{
242+
"a": "b",
243+
"c": "d",
244+
},
245+
},
246+
{
247+
s: "a=b, xyz",
248+
labels: prometheus.Labels{
249+
"a": "b",
250+
},
251+
},
252+
}
253+
254+
for _, cs := range cases {
255+
labels := parseConstLabels(cs.s)
256+
if !reflect.DeepEqual(labels, cs.labels) {
257+
c.Fatalf("labels not equal (%v -> %v)", labels, cs.labels)
258+
}
259+
}
260+
}
261+
187262
func UnsetEnvironment(c *C, d string) {
188263
err := os.Unsetenv(d)
189264
c.Assert(err, IsNil)

0 commit comments

Comments
 (0)