summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/server_status_command.cpp
diff options
context:
space:
mode:
authorJess Balint <jbalint@gmail.com>2022-04-07 14:16:16 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-04-07 14:54:55 +0000
commitd964e2b912e26a96ee61cf4272102c8b4415fd2e (patch)
treeed22d61fade25995b91fbcc905831b3fdece17db /src/mongo/db/commands/server_status_command.cpp
parent1d14f3fa16533fe806027ab79e1caec4acd7b5ae (diff)
downloadmongo-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.cpp10
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