summaryrefslogtreecommitdiff
path: root/jstests/free_mon/free_mon_register.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/free_mon/free_mon_register.js')
-rw-r--r--jstests/free_mon/free_mon_register.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/jstests/free_mon/free_mon_register.js b/jstests/free_mon/free_mon_register.js
new file mode 100644
index 00000000000..19bb2e59244
--- /dev/null
+++ b/jstests/free_mon/free_mon_register.js
@@ -0,0 +1,53 @@
+// Validate registration works
+//
+load("jstests/free_mon/libs/free_mon.js");
+
+(function() {
+'use strict';
+
+const localTime = Date.now();
+
+let mock_web = new FreeMonWebServer();
+
+mock_web.start();
+
+let options = {
+ setParameter: "cloudFreeMonitoringEndpointURL=" + mock_web.getURL(),
+ enableFreeMonitoring: "on",
+ freeMonitoringTag: "foo",
+ verbose: 1,
+};
+
+const conn = MongoRunner.runMongod(options);
+assert.neq(null, conn, 'mongod was unable to start up');
+
+WaitForRegistration(conn);
+
+const stats = mock_web.queryStats();
+print(tojson(stats));
+
+assert.eq(stats.registers, 1);
+
+const last_register = mock_web.query("last_register");
+print(tojson(last_register));
+
+assert.eq(last_register.version, 2);
+assert.gt(new Date().setTime(last_register.localTime["$date"]), localTime);
+assert.eq(last_register.payload.buildInfo.bits, 64);
+assert.eq(last_register.payload.buildInfo.ok, 1);
+assert.eq(last_register.payload.storageEngine.readOnly, false);
+assert.eq(last_register.payload.isMaster.ok, 1);
+assert.eq(last_register.tags, ["foo"]);
+
+mock_web.waitMetrics(2);
+
+const last_metrics = mock_web.query("last_metrics");
+print(tojson(last_metrics));
+
+assert.eq(last_metrics.version, 2);
+assert.gt(new Date().setTime(last_metrics.localTime["$date"]), localTime);
+
+MongoRunner.stopMongod(conn);
+
+mock_web.stop();
+})();