diff options
author | Charlie Swanson <charlie.swanson@mongodb.com> | 2021-03-02 16:04:42 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-03-17 21:35:07 +0000 |
commit | 9d1a5300f40c6b8969ea5643c2b48361c2582b2e (patch) | |
tree | 821bba0d88c140bb9d748a0b3f627a072dc5b2af /src/mongo/db/stats | |
parent | a100482f36a17780de17a768da4c8bd74713f727 (diff) | |
download | mongo-9d1a5300f40c6b8969ea5643c2b48361c2582b2e.tar.gz |
SERVER-54470 Use IDL to parse $collStats
Diffstat (limited to 'src/mongo/db/stats')
-rw-r--r-- | src/mongo/db/stats/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/stats/storage_stats.cpp | 17 | ||||
-rw-r--r-- | src/mongo/db/stats/storage_stats.h | 5 |
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); /** |