diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2018-06-11 17:04:51 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2018-06-11 23:49:35 -0400 |
commit | 010b2a918243905d984a095139c32602c5a77357 (patch) | |
tree | c708d92857f50ca7dfed2298b044e18fa94d4422 | |
parent | 16c3a17cc07fdebf8b3bff017825c7aff35fbc53 (diff) | |
download | mongo-010b2a918243905d984a095139c32602c5a77357.tar.gz |
SERVER-35501 Local Time in free monitoring requests
(cherry picked from commit 8c5fd63e89fc03d98d229d818cf610a46426b3b7)
-rw-r--r-- | jstests/free_mon/free_mon_register.js | 4 | ||||
-rw-r--r-- | src/mongo/db/free_mon/free_mon_processor.cpp | 3 | ||||
-rw-r--r-- | src/mongo/db/free_mon/free_mon_protocol.idl | 6 |
3 files changed, 13 insertions, 0 deletions
diff --git a/jstests/free_mon/free_mon_register.js b/jstests/free_mon/free_mon_register.js index d2619d117df..d0d29f114de 100644 --- a/jstests/free_mon/free_mon_register.js +++ b/jstests/free_mon/free_mon_register.js @@ -5,6 +5,8 @@ load("jstests/free_mon/libs/free_mon.js"); (function() { 'use strict'; + const localTime = Date.now(); + let mock_web = new FreeMonWebServer(); mock_web.start(); @@ -30,6 +32,7 @@ load("jstests/free_mon/libs/free_mon.js"); print(tojson(last_register)); assert.eq(last_register.version, 1); + 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); @@ -42,6 +45,7 @@ load("jstests/free_mon/libs/free_mon.js"); print(tojson(last_metrics)); assert.eq(last_metrics.version, 1); + assert.gt(new Date().setTime(last_metrics.localTime["$date"]), localTime); MongoRunner.stopMongod(conn); diff --git a/src/mongo/db/free_mon/free_mon_processor.cpp b/src/mongo/db/free_mon/free_mon_processor.cpp index 4ff1411145e..c558ee0fb04 100644 --- a/src/mongo/db/free_mon/free_mon_processor.cpp +++ b/src/mongo/db/free_mon/free_mon_processor.cpp @@ -414,6 +414,8 @@ void FreeMonProcessor::doCommandRegister(Client* client, req.setVersion(kProtocolVersion); + req.setLocalTime(client->getServiceContext()->getPreciseClockSource()->now()); + if (!msg->getPayload().empty()) { // Cache the tags for subsequent retries _tags = msg->getPayload(); @@ -743,6 +745,7 @@ void FreeMonProcessor::doMetricsSend(Client* client) { invariant(!_state->getRegistrationId().empty()); req.setVersion(kProtocolVersion); + req.setLocalTime(client->getServiceContext()->getPreciseClockSource()->now()); req.setEncoding(MetricsEncodingEnum::snappy); req.setId(_state->getRegistrationId()); diff --git a/src/mongo/db/free_mon/free_mon_protocol.idl b/src/mongo/db/free_mon/free_mon_protocol.idl index ccc857163da..b08e0638a0f 100644 --- a/src/mongo/db/free_mon/free_mon_protocol.idl +++ b/src/mongo/db/free_mon/free_mon_protocol.idl @@ -41,6 +41,9 @@ structs: description: "Existing Registration Id" type: string optional: true + localTime: + description: "Local time at registration send" + type: date tags: description: "Tags" type: array<string> @@ -82,6 +85,9 @@ structs: id: description: "Registration Id" type: string + localTime: + description: "Local time at metrics send" + type: date encoding: description: "Compression Encoding" type: MetricsEncoding |