summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2018-06-11 17:04:51 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2018-06-11 23:49:35 -0400
commit010b2a918243905d984a095139c32602c5a77357 (patch)
treec708d92857f50ca7dfed2298b044e18fa94d4422
parent16c3a17cc07fdebf8b3bff017825c7aff35fbc53 (diff)
downloadmongo-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.js4
-rw-r--r--src/mongo/db/free_mon/free_mon_processor.cpp3
-rw-r--r--src/mongo/db/free_mon/free_mon_protocol.idl6
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