예제 #1
0
 /**
  * Return server history data for Dygraph
  *
  * @param int $id server id
  * @param string $req service key
  */
 public function serverHistory($id = null, $req = null)
 {
     $data = [];
     $req = urldecode($req);
     $this->load->model('server_model', 'server');
     $this->load->model('serverHistory_model', 'serverHistory');
     $this->load->helper('utils_helper');
     $returnPercentage = true;
     $service = $this->service_model->getByName($req);
     if (!isset($service)) {
         return $this->jsonError('Service not found');
     }
     if (!$this->server->isValid($id)) {
         return $this->jsonError('Server is not valid');
     }
     $dbColumns = explode(':', $service['dbcolumns']);
     $dbColumn = reset($dbColumns);
     $returnPercentage = $this->shouldReturnPercentage($service, $req);
     $serverHistory = $this->serverHistory->getServerHistory($id);
     if (count($serverHistory) < 1) {
         return $this->jsonError('Server doesn\'t have any history');
     }
     foreach ($serverHistory as $serverData) {
         $returnPercentage ? $data[] = calculatePercentages([$serverData], ['service' => $service], true) : ($data[]['service'] = $serverData[$dbColumn]);
         $data[count($data) - 1]['Date'] = date("Y/m/d H:i:s", $serverData['time']);
     }
     $this->printCSV($req, $service['name'], $data);
 }
예제 #2
0
 private function view($viewName)
 {
     $data = [];
     $this->load->helper('utils_helper');
     $this->load->model('service_model');
     $this->load->model('server_model', 'server');
     $this->load->model('serverHistory_model', 'serverHistory');
     $data['services'] = $this->service_model->getAll();
     $data['serversConfig'] = $this->server->getConfig();
     $data['serversData'] = $this->serverHistory->getServersHistory();
     $data['percents'] = calculatePercentages($data['serversData'], $data['services']);
     $data['updateTime'] = timeSince($this->serverHistory->getLastUpdate());
     $this->viewRender($data, $viewName);
 }