$data = array(); $data['stats'] = Library_Command_Factory::instance('stats_api')->stats($server['hostname'], $server['port']); $data['slabs'] = Library_Analysis::slabs(Library_Command_Factory::instance('slabs_api')->slabs($server['hostname'], $server['port'])); $stats = Library_Analysis::merge($stats, $data['stats']); # Computing stats if (isset($data['slabs']['total_malloced'], $data['slabs']['total_wasted'])) { $slabs['total_malloced'] += $data['slabs']['total_malloced']; $slabs['total_wasted'] += $data['slabs']['total_wasted']; } $status[$server['hostname'] . ':' . $server['port']] = $data['stats'] != array() ? $data['stats']['version'] : ''; $uptime[$server['hostname'] . ':' . $server['port']] = $data['stats'] != array() ? $data['stats']['uptime'] : ''; } } elseif (isset($_GET['server']) && ($server = $_ini->server($_GET['server']))) { # Getting Stats & Slabs stats $stats = Library_Command_Factory::instance('stats_api')->stats($server['hostname'], $server['port']); $slabs = Library_Analysis::slabs(Library_Command_Factory::instance('slabs_api')->slabs($server['hostname'], $server['port'])); $settings = Library_Command_Factory::instance('stats_api')->settings($server['hostname'], $server['port']); } # Stats are well formed if ($stats !== false && $stats != array()) { # Analysis $stats = Library_Analysis::stats($stats); include 'View/Stats/Stats.tpl'; } else { include 'View/Stats/Error.tpl'; } unset($stats); break; } # Showing footer include 'View/Footer.tpl';
$stats[$server]['limit_maxbytes'] = $actual[$server]['limit_maxbytes']; $stats[$server]['curr_connections'] = $actual[$server]['curr_connections']; $stats[$server]['query_time'] = $actual[$server]['query_time']; } } # Saving new stats dump file_put_contents($file_path, serialize($actual)); # Showing stats include 'View/LiveStats/Stats.phtml'; break; # Default : No command # Default : No command default: # Initializing : making stats dump $stats = array(); foreach ($_ini->cluster($cluster) as $name => $server) { $stats[$name] = Library_Command_Factory::instance('stats_api')->stats($server['hostname'], $server['port']); } # Saving first stats dump file_put_contents($file_path, serialize($stats)); # Searching for connection error, adding some time to refresh rate to prevent error $refresh_rate = max($_ini->get('refresh_rate'), count($_ini->cluster($cluster)) * 0.25 + Library_Data_Error::count() * (0.5 + $_ini->get('connection_timeout'))); # Showing header include 'View/Header.phtml'; # Showing live stats frame include 'View/LiveStats/Frame.phtml'; # include 'View/LiveStats/Graphic.phtml'; # Showing footer include 'View/Footer.phtml'; break; }