mongo/jstests/replsets/system_profile_secondary.js

24 lines
886 B
JavaScript

// This tests that we can successfully profile queries on secondaries.
import {ReplSetTest} from "jstests/libs/replsettest.js";
let rst = new ReplSetTest({nodes: 2});
rst.startSet();
rst.initiate();
rst.awaitReplication();
let secondaryDB = rst.getSecondary().getDB("test");
jsTestLog("Enable profiling on the secondary");
assert.commandWorked(secondaryDB.runCommand({profile: 2}));
jsTestLog("Perform a query that returns no results, but will get profiled.");
secondaryDB.doesntexist.find({}).itcount();
let numProfileEntries = (coll) =>
coll.getDB().system.profile.find({op: "query", ns: coll.getFullName(), nreturned: 0}).itcount();
jsTestLog("Check the query is in the profile and turn profiling off.");
assert.eq(numProfileEntries(secondaryDB.doesntexist), 1, "expected a single profile entry");
assert.commandWorked(secondaryDB.runCommand({profile: 0}));
rst.stopSet();