(function() {
|
"use strict";
|
|
let c = db.c;
|
c.drop();
|
assert.commandWorked(db.createCollection("c", {capped: true, size: 1024}));
|
assert.writeOK(db.c.insert({_id: 1}));
|
assert.writeOK(db.c.insert({_id: 2}));
|
assert.writeOK(db.c.insert({_id: 3}));
|
|
function getGlobalLatencyStats() {
|
return db.serverStatus().opLatencies.reads;
|
}
|
|
function getCollectionLatencyStats(coll) {
|
return coll.latencyStats().next().latencyStats.reads;
|
}
|
|
function getTop(coll) {
|
return db.adminCommand({top: 1}).totals[coll.getFullName()].getmore;
|
}
|
|
// Global latency histogram from serverStatus.
|
let oldGlobalLatency = getGlobalLatencyStats();
|
assert.eq(3, db.c.find().tailable(true).itcount());
|
let newGlobalLatency = getGlobalLatencyStats();
|
|
let globalLatencyOpsDelta = newGlobalLatency.ops - oldGlobalLatency.ops;
|
print("global latency hist ops delta: " + globalLatencyOpsDelta);
|
let globalLatencyDelta = newGlobalLatency.latency - oldGlobalLatency.latency;
|
print("global latency hist latency delta (micros): " + globalLatencyDelta);
|
|
// Per-collection latency histogram.
|
let oldCollLatency = getCollectionLatencyStats(db.c);
|
assert.eq(3, db.c.find().tailable(true).itcount());
|
let newCollLatency = getCollectionLatencyStats(db.c);
|
|
let collLatencyOpsDelta = newCollLatency.ops - oldCollLatency.ops;
|
print("collection latency hist ops delta: " + collLatencyOpsDelta);
|
let collLatencyDelta = newCollLatency.latency - oldCollLatency.latency;
|
print("collection latency hist latency delta (micros): " + collLatencyOpsDelta);
|
|
// Top.
|
let oldTop = getTop(db.c);
|
assert.eq(3, db.c.find().tailable(true).itcount());
|
let newTop = getTop(db.c);
|
|
let topOpsDelta = newTop.count - oldTop.count;
|
print("top ops delta: " + topOpsDelta);
|
let topLatencyDelta = newTop.time - oldTop.time;
|
print("top latency delta (micros): " + topOpsDelta);
|
}());
|