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%