/** * 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); }
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); }