summaryrefslogtreecommitdiff
path: root/src/mongo/db/stats
diff options
context:
space:
mode:
authorCharlie Swanson <charlie.swanson@mongodb.com>2021-03-02 16:04:42 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-03-17 21:35:07 +0000
commit9d1a5300f40c6b8969ea5643c2b48361c2582b2e (patch)
tree821bba0d88c140bb9d748a0b3f627a072dc5b2af /src/mongo/db/stats
parenta100482f36a17780de17a768da4c8bd74713f727 (diff)
downloadmongo-9d1a5300f40c6b8969ea5643c2b48361c2582b2e.tar.gz
SERVER-54470 Use IDL to parse $collStats
Diffstat (limited to 'src/mongo/db/stats')
-rw-r--r--src/mongo/db/stats/SConscript3
-rw-r--r--src/mongo/db/stats/storage_stats.cpp17
-rw-r--r--src/mongo/db/stats/storage_stats.h5
3 files changed, 9 insertions, 16 deletions
diff --git a/src/mongo/db/stats/SConscript b/src/mongo/db/stats/SConscript
index 86aa08006f2..81d74eb5a06 100644
--- a/src/mongo/db/stats/SConscript
+++ b/src/mongo/db/stats/SConscript
@@ -120,7 +120,7 @@ env.Library(
source=[
"latency_server_status_section.cpp",
"lock_server_status_section.cpp",
- 'storage_stats.cpp',
+ "storage_stats.cpp",
],
LIBDEPS=[
'$BUILD_DIR/mongo/base',
@@ -132,6 +132,7 @@ env.Library(
LIBDEPS_PRIVATE=[
'$BUILD_DIR/mongo/db/catalog/database_holder',
'$BUILD_DIR/mongo/db/commands/server_status',
+ '$BUILD_DIR/mongo/db/pipeline/document_sources_idl',
'$BUILD_DIR/mongo/db/timeseries/bucket_catalog',
],
)
diff --git a/src/mongo/db/stats/storage_stats.cpp b/src/mongo/db/stats/storage_stats.cpp
index 0cb59121b71..e7517e9cfbe 100644
--- a/src/mongo/db/stats/storage_stats.cpp
+++ b/src/mongo/db/stats/storage_stats.cpp
@@ -47,20 +47,11 @@ namespace mongo {
Status appendCollectionStorageStats(OperationContext* opCtx,
const NamespaceString& nss,
- const BSONObj& param,
+ const StorageStatsSpec& storageStatsSpec,
BSONObjBuilder* result) {
- int scale = 1;
- if (param["scale"].isNumber()) {
- scale = param["scale"].numberInt();
- if (scale < 1) {
- return {ErrorCodes::BadValue, "scale has to be >= 1"};
- }
- } else if (param["scale"].trueValue()) {
- return {ErrorCodes::BadValue, "scale has to be a number >= 1"};
- }
-
- bool verbose = param["verbose"].trueValue();
- bool waitForLock = !param.hasField("waitForLock") || param["waitForLock"].trueValue();
+ auto scale = storageStatsSpec.getScale().value_or(1);
+ bool verbose = storageStatsSpec.getVerbose();
+ bool waitForLock = storageStatsSpec.getWaitForLock();
bool isTimeseries = false;
if (auto viewCatalog = DatabaseHolder::get(opCtx)->getViewCatalog(opCtx, nss.db())) {
diff --git a/src/mongo/db/stats/storage_stats.h b/src/mongo/db/stats/storage_stats.h
index 377210bb765..b2a5e3fee0f 100644
--- a/src/mongo/db/stats/storage_stats.h
+++ b/src/mongo/db/stats/storage_stats.h
@@ -34,6 +34,7 @@
#include "mongo/bson/bsonobjbuilder.h"
#include "mongo/db/namespace_string.h"
#include "mongo/db/operation_context.h"
+#include "mongo/db/pipeline/storage_stats_spec_gen.h"
namespace mongo {
@@ -43,14 +44,14 @@ namespace mongo {
* Params:
* opCtx
* nss Fully qualified namespace.
- * param Uses "scale" (default = 1) and "verbose".
+ * spec Includes options such as "scale" (default = 1) and "verbose".
* builder out; object the stats will be appended to.
*
* returns Status, (note "NamespaceNotFound" will fill result with 0-ed stats)
*/
Status appendCollectionStorageStats(OperationContext* opCtx,
const NamespaceString& nss,
- const BSONObj& param,
+ const StorageStatsSpec& spec,
BSONObjBuilder* builder);
/**