diff options
author | Jess Balint <jbalint@gmail.com> | 2022-04-07 14:16:16 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-04-07 14:54:55 +0000 |
commit | d964e2b912e26a96ee61cf4272102c8b4415fd2e (patch) | |
tree | ed22d61fade25995b91fbcc905831b3fdece17db /src/mongo/db/commands/server_status_command.cpp | |
parent | 1d14f3fa16533fe806027ab79e1caec4acd7b5ae (diff) | |
download | mongo-d964e2b912e26a96ee61cf4272102c8b4415fd2e.tar.gz |
SERVER-65271 serverStatus should allow fine-grained metrics exclusion
Diffstat (limited to 'src/mongo/db/commands/server_status_command.cpp')
-rw-r--r-- | src/mongo/db/commands/server_status_command.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mongo/db/commands/server_status_command.cpp b/src/mongo/db/commands/server_status_command.cpp index 6435da21c95..41d5a45a0f9 100644 --- a/src/mongo/db/commands/server_status_command.cpp +++ b/src/mongo/db/commands/server_status_command.cpp @@ -133,11 +133,17 @@ public: // --- counters bool includeMetricTree = MetricTree::theMetricTree != nullptr; - if (cmdObj["metrics"].type() && !cmdObj["metrics"].trueValue()) + auto metricsEl = cmdObj["metrics"_sd]; + if (metricsEl.type() && !metricsEl.trueValue()) includeMetricTree = false; if (includeMetricTree) { - MetricTree::theMetricTree->appendTo(result); + if (metricsEl.type() == BSONType::Object) { + MetricTree::theMetricTree->appendTo(BSON("metrics" << metricsEl.embeddedObject()), + result); + } else { + MetricTree::theMetricTree->appendTo(result); + } } // --- some hard coded global things hard to pull out |