summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/query_analysis_writer_test.cpp
diff options
context:
space:
mode:
authorIsrael Hsu <israel.hsu@mongodb.com>2023-03-09 04:18:42 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-03-09 05:04:56 +0000
commit5b99e24bf230cb1b22b1b8df3f485438ca3ef911 (patch)
tree82df57eae3e74999daebf9c91b3ab13f3194aabd /src/mongo/db/s/query_analysis_writer_test.cpp
parent22f96b5add43ff10158a18073e9dcb3d001e2444 (diff)
downloadmongo-5b99e24bf230cb1b22b1b8df3f485438ca3ef911.tar.gz
SERVER-70996 Add serverStatus reporting for query analysis, reorg QueryAnalysis sample counting
Diffstat (limited to 'src/mongo/db/s/query_analysis_writer_test.cpp')
-rw-r--r--src/mongo/db/s/query_analysis_writer_test.cpp111
1 files changed, 0 insertions, 111 deletions
diff --git a/src/mongo/db/s/query_analysis_writer_test.cpp b/src/mongo/db/s/query_analysis_writer_test.cpp
index 8fb0e73a20d..2cc6ddf87db 100644
--- a/src/mongo/db/s/query_analysis_writer_test.cpp
+++ b/src/mongo/db/s/query_analysis_writer_test.cpp
@@ -411,16 +411,6 @@ protected:
ASSERT_BSONOBJ_EQ(parsedCmd.toBSON({}), expectedCmd.toBSON({}));
}
- /* Asserts that there is a sampled write query document with the given sample id and
- * the given size in bytes.
- */
- int assertSampledQueryDocumentSize(const UUID& sampleId, long long size) {
- auto doc = _getConfigDocument(NamespaceString::kConfigSampledQueriesNamespace, sampleId);
- auto docSize = doc.objsize();
- ASSERT_EQ(docSize, size);
- return docSize;
- }
-
/*
* Returns the number of the documents for the collection 'nss' in the config.sampledQueriesDiff
* collection.
@@ -1405,107 +1395,6 @@ TEST_F(QueryAnalysisWriterTest, DiffExceedsSizeLimit) {
ASSERT_EQ(getDiffDocumentsCount(nss0), 0);
}
-TEST_F(QueryAnalysisWriterTest, ReportForCurrentOpForRead) {
- auto& writer = *QueryAnalysisWriter::get(operationContext());
-
- auto collUuid0 = getCollectionUUID(nss0);
- auto sampleId = UUID::gen();
-
- // Write a sampled query.
- writer.addFindQuery(sampleId, nss0, makeNonEmptyFilter(), emptyCollation).get();
- writer.flushQueriesForTest(operationContext());
-
- // Get currentOp report.
- std::vector<BSONObj> reps;
- writer.reportForCurrentOp(&reps);
- ASSERT_EQ(reps.size(), 1);
- ASSERT_EQ(reps[0].getField(SampleCounters::kDescriptionFieldName).String(),
- SampleCounters::kDescriptionFieldValue);
- ASSERT_EQ(reps[0].getField(SampleCounters::kNamespaceStringFieldName).String(),
- nss0.toString());
- ASSERT_EQ(UUID::parse(reps[0].getField(SampleCounters::kCollUuidFieldName)), collUuid0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsCountFieldName).Long(), 1);
- auto expectedReadsBytes = assertSampledQueryDocumentSize(
- sampleId, reps[0].getField(SampleCounters::kSampledReadsBytesFieldName).Long());
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesCountFieldName).Long(), 0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesBytesFieldName).Long(), 0);
-
- // Attempting to sample a query that is too large will not be counted.
- sampleId = UUID::gen();
- BSONObjBuilder bobFilter = makeNonEmptyFilter();
- bobFilter.append(std::string(BSONObjMaxUserSize, 'a'), 1);
-
- writer.addFindQuery(sampleId, nss0, bobFilter.obj(), emptyCollation).get();
- writer.flushQueriesForTest(operationContext());
-
- // Get currentOp report.
- reps.clear();
- writer.reportForCurrentOp(&reps);
- ASSERT_EQ(reps.size(), 1);
- ASSERT_EQ(reps[0].getField(SampleCounters::kDescriptionFieldName).String(),
- SampleCounters::kDescriptionFieldValue);
- ASSERT_EQ(reps[0].getField(SampleCounters::kNamespaceStringFieldName).String(),
- nss0.toString());
- ASSERT_EQ(UUID::parse(reps[0].getField(SampleCounters::kCollUuidFieldName)), collUuid0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsCountFieldName).Long(), 1);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsBytesFieldName).Long(),
- expectedReadsBytes);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesCountFieldName).Long(), 0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesBytesFieldName).Long(), 0);
-}
-
-TEST_F(QueryAnalysisWriterTest, ReportForCurrentOpForWrite) {
- auto& writer = *QueryAnalysisWriter::get(operationContext());
-
- auto collUuid0 = getCollectionUUID(nss0);
-
- auto [originalCmd, expectedSampledCmds] = makeUpdateCommandRequest(nss0, 3, {0});
- ASSERT_EQ(expectedSampledCmds.size(), 1);
-
- // Write a sampled query.
- writer.addUpdateQuery(originalCmd, 0).get();
- writer.flushQueriesForTest(operationContext());
-
- // Get currentOp report.
- std::vector<BSONObj> reps;
- writer.reportForCurrentOp(&reps);
- ASSERT_EQ(reps.size(), 1);
- ASSERT_EQ(reps[0].getField(SampleCounters::kDescriptionFieldName).String(),
- SampleCounters::kDescriptionFieldValue);
- ASSERT_EQ(reps[0].getField(SampleCounters::kNamespaceStringFieldName).String(),
- nss0.toString());
- ASSERT_EQ(UUID::parse(reps[0].getField(SampleCounters::kCollUuidFieldName)), collUuid0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsCountFieldName).Long(), 0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsBytesFieldName).Long(), 0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesCountFieldName).Long(), 1);
- auto expectedWritesBytes = assertSampledQueryDocumentSize(
- expectedSampledCmds.begin()->first,
- reps[0].getField(SampleCounters::kSampledWritesBytesFieldName).Long());
-
- // Attempting to sample a query that is too large will not be counted.
- auto [originalCmd2, expectedSampledCmds2] =
- makeUpdateCommandRequest(nss0, 3, {0}, std::string(BSONObjMaxUserSize, 'a'));
- ASSERT_EQ(expectedSampledCmds2.size(), 1);
-
- writer.addUpdateQuery(originalCmd2, 0).get();
- writer.flushQueriesForTest(operationContext());
-
- // Get currentOp report.
- reps.clear();
- writer.reportForCurrentOp(&reps);
- ASSERT_EQ(reps.size(), 1);
- ASSERT_EQ(reps[0].getField(SampleCounters::kDescriptionFieldName).String(),
- SampleCounters::kDescriptionFieldValue);
- ASSERT_EQ(reps[0].getField(SampleCounters::kNamespaceStringFieldName).String(),
- nss0.toString());
- ASSERT_EQ(UUID::parse(reps[0].getField(SampleCounters::kCollUuidFieldName)), collUuid0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsCountFieldName).Long(), 0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledReadsBytesFieldName).Long(), 0);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesCountFieldName).Long(), 1);
- ASSERT_EQ(reps[0].getField(SampleCounters::kSampledWritesBytesFieldName).Long(),
- expectedWritesBytes);
-}
-
} // namespace
} // namespace analyze_shard_key
} // namespace mongo