summaryrefslogtreecommitdiff
path: root/jstests/replsets/system_profile_secondary.js
blob: 954ec0bf523b4fe0c073aea1a46cb1a7b2d788ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// This tests that we can successfully profile queries on secondaries.
(function() {
'use strict';
var rst = new ReplSetTest({nodes: 2});
rst.startSet();
rst.initiate();
rst.awaitReplication();

var 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();
})();