diff --git a/exporter/server.go b/exporter/server.go index 5c535c505..1aea32abe 100644 --- a/exporter/server.go +++ b/exporter/server.go @@ -159,8 +159,9 @@ func OverallTargetsHandler(exporters []*Exporter, logger *logrus.Logger) http.Ha registry.MustRegister(gc) } - hostlabels := prometheus.Labels{ - "instance": e.opts.NodeName, + hostlabels := prometheus.Labels{} + if e.opts.NodeName != "" { + hostlabels["instance"] = e.opts.NodeName } gw := NewGathererWrapper(registry, hostlabels) diff --git a/main.go b/main.go index c8320e437..0eee19e53 100644 --- a/main.go +++ b/main.go @@ -140,14 +140,17 @@ func main() { } func buildExporter(opts GlobalFlags, uri string, log *logrus.Logger) *exporter.Exporter { - uri = buildURI(uri, opts.User, opts.Password, log) + uri = buildURI(uri, opts.User, opts.Password) log.Debugf("Connection URI: %s", uri) uriParsed, _ := url.Parse(uri) var nodeName string - if uriParsed.Port() != "" { + switch { + case uriParsed == nil: + nodeName = "" + case uriParsed.Port() != "": nodeName = net.JoinHostPort(uriParsed.Hostname(), uriParsed.Port()) - } else { + default: nodeName = uriParsed.Host } @@ -295,7 +298,7 @@ func buildURIManually(uri string, user string, password string) string { return uri } -func buildURI(uri string, user string, password string, log *logrus.Logger) string { +func buildURI(uri string, user string, password string) string { defaultPrefix := "mongodb://" // default prefix if !strings.HasPrefix(uri, defaultPrefix) && !strings.HasPrefix(uri, "mongodb+srv://") { diff --git a/main_test.go b/main_test.go index c1e0c9fa2..7860eae9a 100644 --- a/main_test.go +++ b/main_test.go @@ -272,7 +272,7 @@ func TestBuildURI(t *testing.T) { } for _, tc := range tests { t.Run(tc.situation, func(t *testing.T) { - newURI := buildURI(tc.origin, tc.newUser, tc.newPassword, logrus.New()) + newURI := buildURI(tc.origin, tc.newUser, tc.newPassword) assert.Equal(t, tc.expect, newURI) }) }