diff options
author | Dan Larkin-York <dan.larkin-york@mongodb.com> | 2023-03-14 14:58:47 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-03-14 16:54:31 +0000 |
commit | b83e40d9508c662cbc75d363f83974b1efeb3f36 (patch) | |
tree | b7e665c89e730703dbf80bb4ed44faf88839df4b /src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp | |
parent | c2898908503a4f6b426cc6b0b44e19104e5869e8 (diff) | |
download | mongo-b83e40d9508c662cbc75d363f83974b1efeb3f36.tar.gz |
SERVER-72610 Refactor BucketCatalog to improve testability
Diffstat (limited to 'src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp')
-rw-r--r-- | src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp b/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp index 98556bc339c..174a15fa9ec 100644 --- a/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp +++ b/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp @@ -29,6 +29,8 @@ #include "mongo/db/timeseries/bucket_catalog/execution_stats.h" +#include "mongo/db/storage/storage_parameters_gen.h" + namespace mongo::timeseries::bucket_catalog { void ExecutionStatsController::incNumBucketInserts(long long increment) { @@ -151,4 +153,53 @@ void ExecutionStatsController::incNumDuplicateBucketsReopened(long long incremen _globalStats.numDuplicateBucketsReopened.fetchAndAddRelaxed(increment); } +void appendExecutionStatsToBuilder(const ExecutionStats& stats, BSONObjBuilder& builder) { + builder.appendNumber("numBucketInserts", stats.numBucketInserts.load()); + builder.appendNumber("numBucketUpdates", stats.numBucketUpdates.load()); + builder.appendNumber("numBucketsOpenedDueToMetadata", + stats.numBucketsOpenedDueToMetadata.load()); + builder.appendNumber("numBucketsClosedDueToCount", stats.numBucketsClosedDueToCount.load()); + builder.appendNumber("numBucketsClosedDueToSchemaChange", + stats.numBucketsClosedDueToSchemaChange.load()); + builder.appendNumber("numBucketsClosedDueToSize", stats.numBucketsClosedDueToSize.load()); + builder.appendNumber("numBucketsClosedDueToTimeForward", + stats.numBucketsClosedDueToTimeForward.load()); + builder.appendNumber("numBucketsClosedDueToTimeBackward", + stats.numBucketsClosedDueToTimeBackward.load()); + builder.appendNumber("numBucketsClosedDueToMemoryThreshold", + stats.numBucketsClosedDueToMemoryThreshold.load()); + + auto commits = stats.numCommits.load(); + builder.appendNumber("numCommits", commits); + builder.appendNumber("numWaits", stats.numWaits.load()); + auto measurementsCommitted = stats.numMeasurementsCommitted.load(); + builder.appendNumber("numMeasurementsCommitted", measurementsCommitted); + if (commits) { + builder.appendNumber("avgNumMeasurementsPerCommit", measurementsCommitted / commits); + } + + if (feature_flags::gTimeseriesScalabilityImprovements.isEnabled( + serverGlobalParams.featureCompatibility)) { + builder.appendNumber("numBucketsClosedDueToReopening", + stats.numBucketsClosedDueToReopening.load()); + builder.appendNumber("numBucketsArchivedDueToMemoryThreshold", + stats.numBucketsArchivedDueToMemoryThreshold.load()); + builder.appendNumber("numBucketsArchivedDueToTimeBackward", + stats.numBucketsArchivedDueToTimeBackward.load()); + builder.appendNumber("numBucketsReopened", stats.numBucketsReopened.load()); + builder.appendNumber("numBucketsKeptOpenDueToLargeMeasurements", + stats.numBucketsKeptOpenDueToLargeMeasurements.load()); + builder.appendNumber("numBucketsClosedDueToCachePressure", + stats.numBucketsClosedDueToCachePressure.load()); + builder.appendNumber("numBucketsFetched", stats.numBucketsFetched.load()); + builder.appendNumber("numBucketsQueried", stats.numBucketsQueried.load()); + builder.appendNumber("numBucketFetchesFailed", stats.numBucketFetchesFailed.load()); + builder.appendNumber("numBucketQueriesFailed", stats.numBucketQueriesFailed.load()); + builder.appendNumber("numBucketReopeningsFailed", stats.numBucketReopeningsFailed.load()); + builder.appendNumber("numDuplicateBucketsReopened", + stats.numDuplicateBucketsReopened.load()); + } +} + + } // namespace mongo::timeseries::bucket_catalog |