Here is a simple script I’ve found to be quite helpful for monitoring the status of background index builds across shards on a system:
var currentOps = db.currentOp();
if(!currentOps.inprog || currentOps.inprog.length < 1) {
print("No operations in progress");
} else {
for(o in currentOps.inprog) {
var op = currentOps.inprog[o];
if(op.msg && op.msg.match(/bg index build/)) {
print(op.opid+' - '+op.msg);
}
}
}
Here's the output:
$ mongo mycluster:30000/mydb bgIndexBuildStatus.js MongoDB shell version: 1.8.1 connecting to: mycluster:30000/mydb shard0000:343812263 - bg index build 122042652/165365928 73% shard0001:355224633 - bg index build 111732254/165568168 67%

