From f05053d2cb65b84eaed4db94c25e9fe4be82d78c Mon Sep 17 00:00:00 2001 From: Yuhong Zhang Date: Mon, 15 May 2023 20:12:40 +0000 Subject: SERVER-77151 Add a helper to merge in a collection's bucket catalog execution stats --- .../timeseries/bucket_catalog/execution_stats.cpp | 31 ++++++++++++++++++++++ .../db/timeseries/bucket_catalog/execution_stats.h | 6 +++++ 2 files changed, 37 insertions(+) diff --git a/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp b/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp index 174a15fa9ec..bdf4199fd97 100644 --- a/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp +++ b/src/mongo/db/timeseries/bucket_catalog/execution_stats.cpp @@ -201,5 +201,36 @@ void appendExecutionStatsToBuilder(const ExecutionStats& stats, BSONObjBuilder& } } +void addCollectionExecutionStats(ExecutionStatsController stats, const ExecutionStats& collStats) { + stats.incNumBucketInserts(collStats.numBucketInserts.load()); + stats.incNumBucketUpdates(collStats.numBucketUpdates.load()); + stats.incNumBucketsOpenedDueToMetadata(collStats.numBucketsOpenedDueToMetadata.load()); + stats.incNumBucketsClosedDueToCount(collStats.numBucketsClosedDueToCount.load()); + stats.incNumBucketsClosedDueToSchemaChange(collStats.numBucketsClosedDueToSchemaChange.load()); + stats.incNumBucketsClosedDueToSize(collStats.numBucketsClosedDueToSize.load()); + stats.incNumBucketsClosedDueToCachePressure( + collStats.numBucketsClosedDueToCachePressure.load()); + stats.incNumBucketsClosedDueToTimeForward(collStats.numBucketsClosedDueToTimeForward.load()); + stats.incNumBucketsClosedDueToTimeBackward(collStats.numBucketsClosedDueToTimeBackward.load()); + stats.incNumBucketsClosedDueToMemoryThreshold( + collStats.numBucketsClosedDueToMemoryThreshold.load()); + stats.incNumBucketsClosedDueToReopening(collStats.numBucketsClosedDueToReopening.load()); + stats.incNumBucketsArchivedDueToMemoryThreshold( + collStats.numBucketsArchivedDueToMemoryThreshold.load()); + stats.incNumBucketsArchivedDueToTimeBackward( + collStats.numBucketsArchivedDueToTimeBackward.load()); + stats.incNumCommits(collStats.numCommits.load()); + stats.incNumWaits(collStats.numWaits.load()); + stats.incNumMeasurementsCommitted(collStats.numMeasurementsCommitted.load()); + stats.incNumBucketsReopened(collStats.numBucketsReopened.load()); + stats.incNumBucketsKeptOpenDueToLargeMeasurements( + collStats.numBucketsKeptOpenDueToLargeMeasurements.load()); + stats.incNumBucketsFetched(collStats.numBucketsFetched.load()); + stats.incNumBucketsQueried(collStats.numBucketsQueried.load()); + stats.incNumBucketFetchesFailed(collStats.numBucketFetchesFailed.load()); + stats.incNumBucketQueriesFailed(collStats.numBucketQueriesFailed.load()); + stats.incNumBucketReopeningsFailed(collStats.numBucketReopeningsFailed.load()); + stats.incNumDuplicateBucketsReopened(collStats.numDuplicateBucketsReopened.load()); +} } // namespace mongo::timeseries::bucket_catalog diff --git a/src/mongo/db/timeseries/bucket_catalog/execution_stats.h b/src/mongo/db/timeseries/bucket_catalog/execution_stats.h index 5b2b00c990a..4a29f271b45 100644 --- a/src/mongo/db/timeseries/bucket_catalog/execution_stats.h +++ b/src/mongo/db/timeseries/bucket_catalog/execution_stats.h @@ -103,4 +103,10 @@ private: void appendExecutionStatsToBuilder(const ExecutionStats& stats, BSONObjBuilder& builder); +/** + * Adds the execution stats of a collection to both the collection and global stats of an execution + * stats controller. + */ +void addCollectionExecutionStats(ExecutionStatsController stats, const ExecutionStats& collStats); + } // namespace mongo::timeseries::bucket_catalog -- cgit v1.2.1