This is the current code in DistributionStatus::getBestReceieverShard @ balancer_policy.cpp:
if ( i->second.isSizeMaxed() || i->second.isDraining() || i->second.hasOpsQueued() ) { LOG(1) << i->first << " is unavailable" << endl; continue; }
It would probably be nice if we split these up and display a different log message for each case.