diff options
author | Israel Hsu <israel.hsu@mongodb.com> | 2023-03-09 04:18:42 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-03-09 05:04:56 +0000 |
commit | 5b99e24bf230cb1b22b1b8df3f485438ca3ef911 (patch) | |
tree | 82df57eae3e74999daebf9c91b3ab13f3194aabd /src/mongo/db/s/query_analysis_writer_test.cpp | |
parent | 22f96b5add43ff10158a18073e9dcb3d001e2444 (diff) | |
download | mongo-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.cpp | 111 |
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 |