percona / mongodb_exporter

A Prometheus exporter for MongoDB including sharding, replication and storage engines
Apache License 2.0
1.18k stars 423 forks source link

MongoDB options: a direct connection cannot be made if multiple hosts are specified #591

Closed wps0721 closed 4 months ago

wps0721 commented 1 year ago

My Mongo started with cluster mode, and I wanted to use one mongo_exporter to monitor all nodes, but the program returned an error

error messages: time="2022-11-11T00:49:29Z" level=error msg="Cannot connect to MongoDB: invalid MongoDB options: a direct connection cannot be made if multiple hosts are specified" 2022/11/11 00:49:29 http: panic serving 172.xx.0.1:xxx34: runtime error: invalid memory address or nil pointer dereference goroutine 9 [running]: net/http.(conn).serve.func1() /opt/hostedtoolcache/go/1.17.13/x64/src/net/http/server.go:1802 +0xb9 panic({0xb33fa0, 0x12611b0}) /opt/hostedtoolcache/go/1.17.13/x64/src/runtime/panic.go:1047 +0x266 go.mongodb.org/mongo-driver/mongo.newDatabase(0x0, {0xbf6427, 0x5}, {0x0, 0x30, 0xc000080000}) /home/runner/go/pkg/mod/go.mongodb.org/mongo-driver@v1.10.2/mongo/database.go:47 +0x5c go.mongodb.org/mongo-driver/mongo.(Client).Database(...) /home/runner/go/pkg/mod/go.mongodb.org/mongo-driver@v1.10.2/mongo/client.go:924 github.com/percona/mongodb_exporter/exporter.getClusterRole({0xd94c20, 0xc000076540}, 0x40d194) /home/runner/work/mongodb_exporter/mongodb_exporter/exporter/topology_info.go:172 +0x8b github.com/percona/mongodb_exporter/exporter.(topologyInfo).loadLabels(0xc0001ce810, {0xd94c20, 0xc000076540}) /home/runner/work/mongodb_exporter/mongodb_exporter/exporter/topology_info.go:105 +0xeb github.com/percona/mongodb_exporter/exporter.newTopologyInfo({0xd94c20, 0xc000076540}, 0x0, 0xc0000e8400) /home/runner/work/mongodb_exporter/mongodb_exporter/exporter/topology_info.go:75 +0xb0 github.com/percona/mongodb_exporter/exporter.(Exporter).Handler.func1({0xd91ed8, 0xc0001dc0e0}, 0xc0001d4200) /home/runner/work/mongodb_exporter/mongodb_exporter/exporter/exporter.go:304 +0x3ab net/http.HandlerFunc.ServeHTTP(0x0, {0xd91ed8, 0xc0001dc0e0}, 0x0) /opt/hostedtoolcache/go/1.17.13/x64/src/net/http/server.go:2047 +0x2f net/http.(ServeMux).ServeHTTP(0x0, {0xd91ed8, 0xc0001dc0e0}, 0xc0001d4200) /opt/hostedtoolcache/go/1.17.13/x64/src/net/http/server.go:2425 +0x149 net/http.serverHandler.ServeHTTP({0xc0001ce5a0}, {0xd91ed8, 0xc0001dc0e0}, 0xc0001d4200) /opt/hostedtoolcache/go/1.17.13/x64/src/net/http/server.go:2879 +0x43b net/http.(conn).serve(0xc0001cae60, {0xd94c58, 0xc0000a1e60}) /opt/hostedtoolcache/go/1.17.13/x64/src/net/http/server.go:1930 +0xb08 created by net/http.(*Server).Serve /opt/hostedtoolcache/go/1.17.13/x64/src/net/http/server.go:3034 +0x4e8

mongo_exporter yaml: mogno-exporter: image: percona/mongodb_exporter:0.35.0 environment:

lisenet commented 1 year ago

@wps0721 Have you tried passing the following argument --no-mongodb.direct-connect?