Exemple #1
0
                 $sHigh[] = array("name" => $sServer->sName);
             }
             $sBandwidthDifference = "{$sBandwidthDifference} Mbps";
         }
     }
     // Calculates Free IP Space
     if ($sBlockList = $database->CachedQuery("SELECT * FROM `server_blocks` WHERE `server_id` = :ServerId", array("ServerId" => $sServer->sId))) {
         foreach ($sBlockList->data as $sBlockRow) {
             if ($sIPList = $database->CachedQuery("SELECT * FROM `ipaddresses` WHERE `block_id` = :BlockId AND `vps_id` = :VPSId", array("BlockId" => $sBlockRow["block_id"], "VPSId" => 0))) {
                 $sIPCount = $sIPCount + count($sIPList->data);
             }
         }
     } else {
         $sIPCount = "0";
     }
     $sStatistics[] = array("name" => $sServer->sName, "load_average" => $sServer->sLoadAverage, "disk_usage" => $sHardDiskUsed, "disk_free" => $sHardDiskFree, "ram_usage" => $sRAMUsed, "ram_free" => $sRAMFree, "status" => $sServer->sStatus, "uptime" => ConvertTime(round($sServer->sHardwareUptime, 0)), "ip_count" => $sIPCount, "type" => $sType, "bandwidth" => $sBandwidthDifference);
     if (empty($sServer->sStatus)) {
         $sDown[] = array("name" => $sServer->sName);
     }
     // Cleanup just in case.
     unset($sHardDiskUsed);
     unset($sHardDiskFree);
     unset($sRAMUsed);
     unset($sRAMFree);
     unset($sLastCheck);
     unset($sPreviousCheck);
     unset($sBandwidth);
     unset($sLastBandwidth);
     unset($sBandwidthDifference);
     unset($sIPCount);
 }
 public function openvz_statistics($sUser, $sVPS, $sRequested)
 {
     global $sTemplate;
     global $database;
     global $locale;
     $sServer = new Server($sVPS->sServerId);
     $sSSH = Server::server_connect($sServer);
     $sLog[] = array("command" => "vzctl status {$sVPS->sContainerId}", "result" => $sSSH->exec("vzctl status {$sVPS->sContainerId}"));
     if (strpos($sLog[0]["result"], 'running') === false) {
         return $sArray = array("json" => 1, "type" => "status", "result" => "offline", "hostname" => $sVPS->sHostname);
     } else {
         $sUptime = explode(' ', $sSSH->exec("vzctl exec {$sVPS->sContainerId} cat /proc/uptime"));
         $sRAM = explode('kB', $sSSH->exec("vzctl exec {$sVPS->sContainerId} cat /proc/meminfo"));
         $sUsedRAM = preg_replace("/[^0-9]/", "", $sRAM[0]) - preg_replace("/[^0-9]/", "", $sRAM[1]);
         $sTotalRAM = preg_replace("/[^0-9]/", "", $sRAM[0]);
         $sUsedSWAP = preg_replace("/[^0-9]/", "", $sRAM[11]) - preg_replace("/[^0-9]/", "", $sRAM[12]);
         if ($sUsedSWAP < 0) {
             $sUsedSWAP = preg_replace("/[^0-9]/", "", $sRAM[12]) - preg_replace("/[^0-9]/", "", $sRAM[13]);
         }
         $sTotalSWAP = $sVPS->sSWAP;
         $sDisk = $sSSH->exec("vzctl exec {$sVPS->sContainerId} df");
         $sDisk = explode("\n", trim($sDisk));
         array_shift($sDisk);
         foreach ($sDisk as $sValue) {
             $sValue = explode(" ", preg_replace("/\\s+/", " ", $sValue));
             if (is_numeric($sValue[2])) {
                 $sDiskUsed = $sDiskUsed + $sValue[2];
             }
         }
         $sDiskUsed = $sDiskUsed / 1048576;
         $sDiskTotal = $sVPS->sDisk;
         $sCPU = explode(' ', $sSSH->exec("vzctl exec {$sVPS->sContainerId} cat /proc/loadavg"));
         if ($sUsedRAM > 0) {
             $sUsedRAM = round($sUsedRAM / 1024, 0);
         }
         if ($sTotalRAM > 0) {
             $sTotalRAM = round($sTotalRAM / 1024, 0);
         }
         if ($sUsedRAM > 0 && $sTotalRAM > 0) {
             $sPercentRAM = round(100 / $sTotalRAM * $sUsedRAM, 0);
         } else {
             $sPercentRAM = 0;
         }
         if ($sUsedSWAP > 0) {
             $sUsedSWAP = round($sUsedSWAP / 1024, 0);
         }
         if ($sUsedSWAP > 0 && $sTotalSWAP > 0) {
             $sPercentSWAP = round(100 / $sTotalSWAP * $sUsedSWAP, 0);
         } else {
             $sPercentSWAP = 0;
         }
         if ($sDiskUsed > 0 && $sDiskTotal > 0) {
             $sPercentDisk = round(100 / $sDiskTotal * $sDiskUsed, 0);
         } else {
             $sPercentDisk = 0;
         }
         if ($sCPU[0] > 0 && $sVPS->sCPULimit > 0) {
             $sPercentCPU = round(100 / $sVPS->sCPULimit * ($sCPU[0] * 100), 0);
         } else {
             $sPercentCPU = 0;
         }
         if ($sVPS->sCPULimit > 0) {
             $sCores = round($sVPS->sCPULimit / 100, 0);
         } else {
             $sCores = 0;
         }
         if ($sDiskUsed < 1) {
             $sDiskUsed = round($sDiskUsed, 2);
         } else {
             $sDiskUsed = round($sDiskUsed, 0);
         }
         if ($sTemplates = $database->CachedQuery("SELECT * FROM templates WHERE `id` = :TemplateId", array('TemplateId' => $sVPS->sTemplateId))) {
             $sVPSTemplate = new Template($sVPS->sTemplateId);
             $sTemplateName = $sVPSTemplate->sName;
         } else {
             $sTemplateName = "N/A";
         }
         if ($sVPS->sBandwidthUsage > 0) {
             $sBandwidthUsage = FormatBytes($sVPS->sBandwidthUsage, 2);
         } else {
             $sBandwidthUsage = "0 MB";
         }
         if (!empty($sVPS->sBandwidthLimit) && !empty($sVPS->sBandwidthUsage)) {
             $sPercentBandwidth = round(100 / ($sVPS->sBandwidthLimit * 1024) * $sVPS->sBandwidthUsage, 0);
             if (empty($sPercentBandwidth)) {
                 $sPercentBandwidth = 0;
             }
         } else {
             $sPercentBandwidth = 0;
         }
         $sStatistics = array("info" => array("uptime" => ConvertTime($sUptime[0]), "used_ram" => $sUsedRAM, "total_ram" => $sTotalRAM, "percent_ram" => $sPercentRAM, "used_swap" => $sUsedSWAP, "total_swap" => $sTotalSWAP, "percent_swap" => $sPercentSWAP, "used_disk" => $sDiskUsed, "total_disk" => round($sDiskTotal, 0), "percent_disk" => $sPercentDisk, "total_cpu" => $sVPS->sCPULimit, "total_cores" => $sCores, "used_cores" => $sCPU[0], "used_cpu" => $sCPU[0] * 100, "percent_cpu" => $sPercentCPU, "load_average" => "{$sCPU['0']} {$sCPU['1']} {$sCPU['2']}", "bandwidth_usage" => $sBandwidthUsage, "bandwidth_limit" => FormatBytes($sVPS->sBandwidthLimit * 1024, 0), "percent_bandwidth" => round(100 / ($sVPS->sBandwidthLimit * 1024) * $sVPS->sBandwidthUsage, 0), "operating_system" => $sTemplateName, "hostname" => $sVPS->sHostname, "primary_ip" => $sVPS->sPrimaryIP));
         $sStatistics = Templater::AdvancedParse($sTemplate->sValue . '/' . $sVPS->sType . '.statistics', $locale->strings, array("Statistics" => $sStatistics));
         return $sArray = array("json" => 1, "type" => "status", "result" => "online", "content" => $sStatistics, "hostname" => $sVPS->sHostname);
     }
 }