Details
Description
I launched a new mongod process with an empty database directory:
$ mongod --dbpath /tmp/db --replSet rs
|
Upon accessing the mongod with the shell, I saw a blurb inviting me to run db.enableFreeMonitoring(). I happened to run this before rs.initiate() and was greeted with the following, unpleasant error:
$ mongo
|
MongoDB shell version v4.0.0-rc5
|
connecting to: mongodb://127.0.0.1:27017
|
MongoDB server version: 4.0.0-rc5
|
---
|
Enable MongoDB's free cloud-based monitoring service to collect and display
|
metrics about your deployment (disk utilization, CPU, operation statistics,
|
etc).
|
|
The monitoring data will be available on a MongoDB website with a unique
|
URL created for you. Anyone you share the URL with will also be able to
|
view this page. MongoDB may use this information to make product
|
improvements and to suggest MongoDB products and deployment options to you.
|
|
To enable free monitoring, run the following command:
|
db.enableFreeMonitoring()
|
---
|
|
> db.enableFreeMonitoring()
|
2018-06-15T13:00:32.014-0400 E QUERY [js] Error: command failed: {
|
"operationTime" : Timestamp(0, 0),
|
"ok" : 0,
|
"errmsg" : "not master",
|
"code" : 10107,
|
"codeName" : "NotMaster",
|
"$clusterTime" : {
|
"clusterTime" : Timestamp(0, 0),
|
"signature" : {
|
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
|
"keyId" : NumberLong(0)
|
}
|
}
|
} :
|
_getErrorWithCode@src/mongo/shell/utils.js:25:13
|
doassert@src/mongo/shell/assert.js:18:14
|
_assertCommandWorked@src/mongo/shell/assert.js:534:17
|
assert.commandWorked@src/mongo/shell/assert.js:618:16
|
DB.prototype.enableFreeMonitoring@src/mongo/shell/db.js:1955:1
|
@(shell):1:1
|
>
|
It may be trivial to improve the user experience here by having db.enableFreeMonitoring check that the active connection is a primary before attempting to run the setFreeMonitoring command.