title = __('General overview'); $this->ajaxMethods = [ 'getLogSizeStatus', 'getServerStatus', 'getCPULoadGraph', ]; $this->interval = 300000; $this->refreshConfig = [ 'logSizeStatus' => [ 'id' => 'status-log-size', 'method' => 'getLogSizeStatus', ], 'ServerStatus' => [ 'id' => 'status-servers', 'method' => 'getServerStatus', ], 'cpuStatus' => [ 'id' => 'status-cpu', 'method' => 'getCPULoadGraph', ], ]; } /** * Return the html log size status. * * @return string */ public function getLogSizeStatus():string { $size = $this->valueMonitoring('console_log_size'); $status = ($size[0]['datos'] < 1000) ? true : false; if ($status === true) { $image_status = html_print_image('images/status_check@svg.svg', true); $text = html_print_div( [ 'content' => __('Everything’s OK!'), 'class' => 'status-text', ], true ); } else { $image_status = html_print_image('images/status_error@svg.svg', true); $text = html_print_div( [ 'content' => __('Too size log size'), 'class' => 'status-text', ], true ); } $output = $image_status.$text; return html_print_div( [ 'content' => $output, 'class' => 'margin-top-5 flex_center', 'id' => 'status-log-size', ], true ); } /** * Return the html Servers status. * * @return string */ public function getServerStatus():string { $status = check_all_servers_up(); if ($status === true) { $image_status = html_print_image('images/status_check@svg.svg', true); $text = html_print_div( [ 'content' => __('Everything’s OK!'), 'class' => 'status-text', ], true ); } else { $image_status = html_print_image('images/status_error@svg.svg', true); $text = html_print_div( [ 'content' => __('Something’s wrong'), 'class' => 'status-text', ], true ); } $output = ''.$image_status.$text.''; return html_print_div( [ 'content' => $output, 'class' => 'margin-top-5', 'id' => 'status-servers', ], true ); } /** * Returns the html of the used licenses. * * @return string */ public function getLicenseUsageGraph():string { if (enterprise_installed() === true) { $info = license_get_info(); if ($info['limit'] > $info['count']) { $used = round(($info['count'] / $info['limit']) * 100); $free = (100 - $used); } else if ($info['limit'] <= $info['count']) { $free = 0; $used = 100; } else { $free = 100; $used = 0; } $data = [ 'agents_used' => [ 'label' => __('% Agents used'), 'perc' => $used, 'color' => '#1C4E6B', ], 'free_agents' => [ 'label' => __('% Free agents'), 'perc' => $free, 'color' => '#5C63A2', ], ]; } else { $agents = agents_get_agents(); $enabled_agents = agents_get_agents( false, false, 'AR', [ 'field' => 'nombre', 'order' => 'ASC', ], false, 1 ); if (is_array($agents) === true) { $total = count($agents); } else { $total = 0; } if ($total > 0 && is_array($enabled_agents) === true) { $total_disabled_agents = round((($total - count($enabled_agents)) * 100) / $total); $total_enabled_agents = round((count($enabled_agents) * 100) / $total); } else { $total_disabled_agents = 0; $total_enabled_agents = 100; } $data = [ 'agents_enabled' => [ 'label' => __('% Agents enabled'), 'perc' => $total_enabled_agents, 'color' => '#1C4E6B', ], 'agents_disabled' => [ 'label' => __('% Agents disabled'), 'perc' => $total_disabled_agents, 'color' => '#5C63A2', ], ]; } $bar = $this->printHorizontalBar($data); $output = html_print_div( [ 'content' => $bar, 'style' => 'margin: 0 auto;', ], true ); return $output; } /** * Print horizontal bar divided by percentage. * * @param array $data Required [perc, color, label]. * * @return string */ private function printHorizontalBar(array $data):string { $output = '