summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp')
-rw-r--r--src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp107
1 files changed, 107 insertions, 0 deletions
diff --git a/src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp b/src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp
index a690d908879..c6fc1755328 100644
--- a/src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp
+++ b/src/mongo/db/s/sharding_data_transform_instance_metrics_test.cpp
@@ -164,6 +164,14 @@ public:
std::move(fieldNameProvider),
std::move(mock));
}
+
+ void createMetricsAndAssertIncrementsCumulativeMetricsField(
+ const std::function<void(ShardingDataTransformInstanceMetrics*)>& mutate,
+ Section section,
+ const StringData& fieldName) {
+ auto metrics = createInstanceMetrics(UUID::gen(), Role::kCoordinator);
+ assertIncrementsCumulativeMetricsField(metrics.get(), mutate, section, fieldName);
+ }
};
TEST_F(ShardingDataTransformInstanceMetricsTest, RegisterAndDeregisterMetrics) {
@@ -362,5 +370,104 @@ TEST_F(ShardingDataTransformInstanceMetricsTest,
ASSERT_FALSE(report.hasField("allShardsLowestRemainingOperationTimeEstimatedSecs"));
}
+TEST_F(ShardingDataTransformInstanceMetricsTest, OnStartedIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onStarted(); }, Section::kRoot, "countStarted");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest, OnSuccessIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onSuccess(); }, Section::kRoot, "countSucceeded");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest, OnFailureIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onFailure(); }, Section::kRoot, "countFailed");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest, OnCanceledIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onCanceled(); }, Section::kRoot, "countCanceled");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest, SetChunkImbalanceIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->setLastOpEndingChunkImbalance(1); },
+ Section::kRoot,
+ "lastOpEndingChunkImbalance");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnReadDuringCriticalSectionIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onReadDuringCriticalSection(); },
+ Section::kActive,
+ "countReadsDuringCriticalSection");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnWriteDuringCriticalSectionIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onWriteDuringCriticalSection(); },
+ Section::kActive,
+ "countWritesDuringCriticalSection");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnWriteToStashCollectionsIncrementsCumulativeMetrics) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onWriteToStashedCollections(); },
+ Section::kActive,
+ "countWritesToStashCollections");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnCloningRemoteBatchRetrievalIncrementsCumulativeMetricsCount) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onCloningRemoteBatchRetrieval(Milliseconds{0}); },
+ Section::kLatencies,
+ "collectionCloningTotalRemoteBatchesRetrieved");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnCloningRemoteBatchRetrievalIncrementsCumulativeMetricsTime) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onCloningRemoteBatchRetrieval(Milliseconds{1}); },
+ Section::kLatencies,
+ "collectionCloningTotalRemoteBatchRetrievalTimeMillis");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnDocumentsProcessedIncrementsCumulativeMetricsDocumentCount) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onDocumentsProcessed(1, 0, Milliseconds{0}); },
+ Section::kActive,
+ "documentsProcessed");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnDocumentsProcessedIncrementsCumulativeMetricsLocalInserts) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onDocumentsProcessed(1, 0, Milliseconds{0}); },
+ Section::kLatencies,
+ "collectionCloningTotalLocalInserts");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnDocumentsProcessedIncrementsCumulativeMetricsByteCount) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onDocumentsProcessed(0, 1, Milliseconds{0}); },
+ Section::kActive,
+ "bytesWritten");
+}
+
+TEST_F(ShardingDataTransformInstanceMetricsTest,
+ OnDocumentsProcessedIncrementsCumulativeMetricsLocalInsertTime) {
+ createMetricsAndAssertIncrementsCumulativeMetricsField(
+ [](auto metrics) { metrics->onDocumentsProcessed(0, 0, Milliseconds{1}); },
+ Section::kLatencies,
+ "collectionCloningTotalLocalInsertTimeMillis");
+}
+
} // namespace
} // namespace mongo