public function getStats()
{
$admin = $this->_db->selectDB('admin');
$return = array_merge($admin->command(array('buildinfo' => 1)), $admin->command(array('serverStatus' => 1)));
$profile = $admin->command(array('profile' => -1));
$return['profilingLevel'] = $profile['was'];
$return['mongoDbTotalSize'] = round($this->totalDbSize / 1000000) . 'mb';
$prevError = $admin->command(array('getpreverror' => 1));
if (!$prevError['n']) {
$return['previousDbErrors'] = 'None';
} else {
$return['previousDbErrors']['error'] = $prevError['err'];
$return['previousDbErrors']['numberOfOperationsAgo'] = $prevError['nPrev'];
}
$return['globalLock']['totalTime'] .= ' µSec';
$return['uptime'] = round($return['uptime'] / 60) . ':' . str_pad($return['uptime'] % 60, 2, '0', STR_PAD_LEFT) . ' minutes';
$unshift['mongo'] = $return['version'];
$unshift['mongoPhpDriver'] = Mongo::VERSION;
$unshift['phpMoAdmin'] = '1.0.6';
$unshift['gitVersion'] = $return['gitVersion'];
unset($return['ok'], $return['version'], $return['gitVersion']);
$return = array_merge(array('version' => $unshift), $return);
$iniIndex = array(-1 => 'Unlimited', 'Off', 'On');
$phpIni = array('allow_persistent', 'auto_reconnect', 'chunk_size', 'cmd', 'default_host', 'default_port', 'max_connections', 'max_persistent');
foreach ($phpIni as $ini) {
$key = 'php_' . $ini;
$return[$key] = ini_get('mongo.' . $ini);
if (isset($iniIndex[$return[$key]])) {
$return[$key] = $iniIndex[$return[$key]];
}
}
return $return;
}