From 923b5fd65ad075c7da30af55022df936f4339128 Mon Sep 17 00:00:00 2001 From: Pol Pinol Castuera Date: Tue, 29 Nov 2022 07:56:52 +0000 Subject: SERVER-68576 Added number of sharded collections to serverStatus command. --- jstests/sharding/global_index_feature_flagging.js | 2 +- jstests/sharding/resharding_feature_flagging.js | 2 +- jstests/sharding/resharding_metrics.js | 4 ---- jstests/sharding/sharding_statistics_server_status.js | 18 ++++++++++++++++++ 4 files changed, 20 insertions(+), 6 deletions(-) (limited to 'jstests') diff --git a/jstests/sharding/global_index_feature_flagging.js b/jstests/sharding/global_index_feature_flagging.js index de3e6556878..314e1dfbb4b 100644 --- a/jstests/sharding/global_index_feature_flagging.js +++ b/jstests/sharding/global_index_feature_flagging.js @@ -24,7 +24,7 @@ const st = new ShardingTest({ const configPrimary = st.configRS.getPrimary(); const serverStatusCmd = ({serverStatus: 1, shardingStatistics: 1}); let res = assert.commandWorked(configPrimary.adminCommand(serverStatusCmd)); -assert(!res.hasOwnProperty("shardingStatistics"), res.shardingStatistics); +assert(!res.shardingStatistics.hasOwnProperty("globalIndex"), res.shardingStatistics); const shardPrimary = st.shard0.rs.getPrimary(); res = assert.commandWorked(shardPrimary.adminCommand(serverStatusCmd)); diff --git a/jstests/sharding/resharding_feature_flagging.js b/jstests/sharding/resharding_feature_flagging.js index 6e964a2237c..8b023168865 100644 --- a/jstests/sharding/resharding_feature_flagging.js +++ b/jstests/sharding/resharding_feature_flagging.js @@ -46,7 +46,7 @@ assert.commandFailedWithCode( const serverStatusCmd = ({serverStatus: 1, shardingStatistics: 1}); let res = assert.commandWorked(configPrimary.adminCommand(serverStatusCmd)); -assert(!res.hasOwnProperty("shardingStatistics"), res.shardingStatistics); +assert(!res.shardingStatistics.hasOwnProperty("resharding"), res.shardingStatistics); const shardPrimary = st.shard0.rs.getPrimary(); res = assert.commandWorked(shardPrimary.adminCommand(serverStatusCmd)); diff --git a/jstests/sharding/resharding_metrics.js b/jstests/sharding/resharding_metrics.js index 02c15cb1615..1686829ccb8 100644 --- a/jstests/sharding/resharding_metrics.js +++ b/jstests/sharding/resharding_metrics.js @@ -54,10 +54,6 @@ for (let [_, shardReplSet] of Object.entries(topology.shards)) { allNodes.push(topology.configsvr.primary); allNodes.forEach((hostName) => { const status = new Mongo(hostName).getDB('admin').serverStatus({}); - if (hostName == topology.configsvr.primary) { - assert(!status.hasOwnProperty('shardingStatistics')); - return; - } const shardingStats = status.shardingStatistics; assert(!shardingStats.hasOwnProperty('resharding')); }); diff --git a/jstests/sharding/sharding_statistics_server_status.js b/jstests/sharding/sharding_statistics_server_status.js index 67e22039403..2aad0b3cb07 100644 --- a/jstests/sharding/sharding_statistics_server_status.js +++ b/jstests/sharding/sharding_statistics_server_status.js @@ -64,6 +64,13 @@ function checkServerStatusAbortedMigrationCount(shardConn, count) { assert.eq(count, shardStats.countDonorMoveChunkAbortConflictingIndexOperation); } +function checkServerStatusNumShardedCollections(conn, count) { + const shardStats = + assert.commandWorked(conn.adminCommand({serverStatus: 1})).shardingStatistics; + assert(shardStats.hasOwnProperty("numShardedCollections")); + assert.eq(count, shardStats.numShardedCollections); +} + function runConcurrentMoveChunk(host, ns, toShard) { const mongos = new Mongo(host); // Helper function to run moveChunk, retrying on ConflictingOperationInProgress. We need to @@ -132,6 +139,17 @@ st.ensurePrimaryShard(coll.getDB() + "", st.shard0.shardName); assert.commandWorked(admin.runCommand({shardCollection: coll + "", key: {_id: 1}})); assert.commandWorked(admin.runCommand({split: coll + "", middle: {_id: 0}})); +// Check the number of sharded collections. +const testDB = st.rs0.getPrimary().getDB(dbName); +const fcvDoc = testDB.adminCommand({getParameter: 1, featureCompatibilityVersion: 1}); +if (MongoRunner.compareBinVersions(fcvDoc.featureCompatibilityVersion.version, '6.2') >= 0) { + st.shardColl(dbName + ".coll2", {_id: 1}, false); + st.shardColl(dbName + ".coll3", {_id: 1}, false); + const configCollections = mongos.getCollection("config.collections"); + checkServerStatusNumShardedCollections(st.configRS.getPrimary(), + configCollections.countDocuments({})); +} + // Move chunk from shard0 to shard1 without docs. assert.commandWorked( mongos.adminCommand({moveChunk: coll + '', find: {_id: 1}, to: st.shard1.shardName})); -- cgit v1.2.1