mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-09-26 11:29:12 +02:00
Working in the refactoring the code of reports.
This commit is contained in:
parent
b49b67be4d
commit
d17fbbc3a9
@ -4860,530 +4860,6 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
||||
case 'network_interfaces_report':
|
||||
reporting_network_interfaces_table($content, $report, $mini, $item_title, $table);
|
||||
break;
|
||||
case 'general':
|
||||
if (empty($item_title)) {
|
||||
$item_title = __('General');
|
||||
}
|
||||
reporting_header_content($mini, $content, $report, $table, $item_title);
|
||||
|
||||
$group_by_agent = $content['group_by_agent'];
|
||||
$order_uptodown = $content['order_uptodown'];
|
||||
|
||||
$table->style[1] = 'text-align: right';
|
||||
|
||||
// Put description at the end of the module (if exists)
|
||||
$table->colspan[1][0] = 3;
|
||||
if ($content["description"] != "") {
|
||||
$data_desc = array();
|
||||
$data_desc[0] = $content["description"];
|
||||
array_push($table->data, $data_desc);
|
||||
}
|
||||
|
||||
switch ($group_by_agent) {
|
||||
//0 means not group by agent
|
||||
case 0:
|
||||
$sql = sprintf("
|
||||
SELECT id_agent_module,
|
||||
server_name, operation
|
||||
FROM treport_content_item
|
||||
WHERE id_report_content = %d",
|
||||
$content['id_rc']);
|
||||
|
||||
$generals = db_process_sql ($sql);
|
||||
if ($generals === false) {
|
||||
$data = array ();
|
||||
$table->colspan[2][0] = 3;
|
||||
$data[0] =
|
||||
__('There are no Agent/Modules defined');
|
||||
array_push ($table->data, $data);
|
||||
break;
|
||||
}
|
||||
|
||||
$table1->width = '99%';
|
||||
$table1->data = array ();
|
||||
$table1->head = array ();
|
||||
$table1->head[0] = __('Agent');
|
||||
$table1->head[1] = __('Module');
|
||||
if ($content['period'] != 0) {
|
||||
$table1->head[2] = __('Operation');
|
||||
}
|
||||
$table1->head[3] = __('Value');
|
||||
$table1->style[0] = 'text-align: left';
|
||||
$table1->style[1] = 'text-align: left';
|
||||
$table1->style[2] = 'text-align: left';
|
||||
$table1->style[3] = 'text-align: left';
|
||||
|
||||
$data_res = array();
|
||||
|
||||
foreach ($generals as $key => $row) {
|
||||
//Metaconsole connection
|
||||
$server_name = $row ['server_name'];
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
$connection = metaconsole_get_connection($server_name);
|
||||
if (metaconsole_load_external_db($connection) != NOERR) {
|
||||
//ui_print_error_message ("Error connecting to ".$server_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (modules_is_disable_agent($row['id_agent_module'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$mod_name = modules_get_agentmodule_name ($row['id_agent_module']);
|
||||
$ag_name = modules_get_agentmodule_agent_name ($row['id_agent_module']);
|
||||
|
||||
if ($content['period'] == 0) {
|
||||
$data_res[$key] =
|
||||
modules_get_last_value($row['id_agent_module']);
|
||||
}
|
||||
else {
|
||||
switch ($row['operation']) {
|
||||
case 'sum':
|
||||
$data_res[$key] =
|
||||
reporting_get_agentmodule_data_sum(
|
||||
$row['id_agent_module'], $content['period'], $report["datetime"]);
|
||||
break;
|
||||
case 'max':
|
||||
$data_res[$key] =
|
||||
reporting_get_agentmodule_data_max(
|
||||
$row['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'min':
|
||||
$data_res[$key] =
|
||||
reporting_get_agentmodule_data_min(
|
||||
$row['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'avg':
|
||||
default:
|
||||
$data_res[$key] =
|
||||
reporting_get_agentmodule_data_average(
|
||||
$row['id_agent_module'], $content['period']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$unit = db_get_value('unit', 'tagente_modulo',
|
||||
'id_agente_modulo',
|
||||
$row['id_agent_module']);
|
||||
|
||||
$id_agent_module[$key] = $row['id_agent_module'];
|
||||
$agent_name[$key] = $ag_name;
|
||||
$module_name[$key] = $mod_name;
|
||||
$units[$key] = $unit;
|
||||
$operations[$key] = $row['operation'];
|
||||
|
||||
//Restore dbconnection
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
}
|
||||
//Order by data descending, ascending or without order
|
||||
if (($order_uptodown == 0) || ($order_uptodown == 1)
|
||||
|| ($order_uptodown == 2)) {
|
||||
|
||||
|
||||
switch ($order_uptodown) {
|
||||
//Descending
|
||||
case 1:
|
||||
array_multisort($data_res, SORT_DESC,
|
||||
$agent_name, SORT_ASC, $module_name,
|
||||
SORT_ASC, $id_agent_module,
|
||||
SORT_ASC, $operations, SORT_ASC);
|
||||
break;
|
||||
//Ascending
|
||||
case 2:
|
||||
array_multisort($data_res, SORT_ASC,
|
||||
$agent_name, SORT_ASC, $module_name,
|
||||
SORT_ASC, $id_agent_module,
|
||||
SORT_ASC, $operations, SORT_ASC);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
$i = 0;
|
||||
foreach ($data_res as $d) {
|
||||
$data = array();
|
||||
$data[0] = $agent_name[$i];
|
||||
$data[1] = $module_name[$i];
|
||||
|
||||
if ($content['period'] != 0) {
|
||||
switch ($operations[$i]) {
|
||||
case 'sum':
|
||||
$op = __('Summatory');
|
||||
break;
|
||||
case 'min':
|
||||
$op = __('Minimal');
|
||||
break;
|
||||
case 'max':
|
||||
$op = __('Maximun');
|
||||
break;
|
||||
case 'avg':
|
||||
default:
|
||||
$op = __('Rate');
|
||||
break;
|
||||
}
|
||||
$data[2] = $op;
|
||||
}
|
||||
|
||||
if ($d === false) {
|
||||
$data[3] = '--';
|
||||
}
|
||||
else {
|
||||
if (!is_numeric($d)) {
|
||||
$data[3] = $d;
|
||||
}
|
||||
else {
|
||||
$data[3] = format_for_graph($d, 2) . " " .
|
||||
$units[$i];
|
||||
}
|
||||
}
|
||||
array_push ($table1->data, $data);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
//Order by agent name
|
||||
elseif ($order_uptodown == 3) {
|
||||
array_multisort($agent_name, SORT_ASC,
|
||||
$data_res, SORT_ASC, $module_name, SORT_ASC,
|
||||
$id_agent_module, SORT_ASC, $operations,
|
||||
SORT_ASC);
|
||||
$i=0;
|
||||
foreach ($agent_name as $a) {
|
||||
$data = array();
|
||||
$data[0] = $agent_name[$i];
|
||||
$data[1] = $module_name[$i];
|
||||
|
||||
switch ($operations[$i]) {
|
||||
case 'sum':
|
||||
$op = __('Summatory');
|
||||
break;
|
||||
case 'min':
|
||||
$op = __('Minimal');
|
||||
break;
|
||||
case 'max':
|
||||
$op = __('Maximun');
|
||||
break;
|
||||
case 'avg':
|
||||
default:
|
||||
$op = __('Average');
|
||||
break;
|
||||
}
|
||||
$data[2] = $op;
|
||||
|
||||
|
||||
if ($data_res[$i] === false) {
|
||||
$data[3] = '--';
|
||||
}
|
||||
else {
|
||||
$data[3] =
|
||||
format_for_graph($data_res[$i], 2)
|
||||
. " " . $units[$i];
|
||||
}
|
||||
array_push ($table1->data, $data);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
$table->colspan[2][0] = 3;
|
||||
$data = array();
|
||||
$data[0] = html_print_table($table1, true);
|
||||
array_push ($table->data, $data);
|
||||
break;
|
||||
//1 means group by agent
|
||||
case 1:
|
||||
//Get the data
|
||||
$sql_data = sprintf("SELECT id_agent_module,
|
||||
server_name, operation
|
||||
FROM treport_content_item
|
||||
WHERE id_report_content = %d",
|
||||
$content['id_rc']);
|
||||
$generals = db_process_sql ($sql_data);
|
||||
|
||||
if ($generals === false) {
|
||||
$data = array ();
|
||||
$table->colspan[2][0] = 3;
|
||||
$data[0] = __('There are no Agent/Modules defined');
|
||||
array_push ($table->data, $data);
|
||||
break;
|
||||
}
|
||||
|
||||
$list_modules = array();
|
||||
$data = array();
|
||||
foreach ($generals as $g) {
|
||||
//Metaconsole connection
|
||||
$server_name = $g ['server_name'];
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
$connection = metaconsole_get_connection($server_name);
|
||||
if (metaconsole_load_external_db($connection) != NOERR) {
|
||||
//ui_print_error_message ("Error connecting to ".$server_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (modules_is_disable_agent($g['id_agent_module'])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$agent_name = modules_get_agentmodule_agent_name ($g['id_agent_module']);
|
||||
$module_name = modules_get_agentmodule_name ($g['id_agent_module']);
|
||||
$unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $g['id_agent_module']);
|
||||
|
||||
|
||||
|
||||
|
||||
if ($content['period'] == 0) {
|
||||
$value_res =
|
||||
modules_get_last_value($g['id_agent_module']);
|
||||
}
|
||||
else {
|
||||
switch ($g['operation']) {
|
||||
case 'sum':
|
||||
$value_res = reporting_get_agentmodule_data_sum ($g['id_agent_module'], $content['period'], $report["datetime"]);
|
||||
break;
|
||||
case 'max':
|
||||
$value_res = reporting_get_agentmodule_data_max ($g['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'min':
|
||||
$value_res = reporting_get_agentmodule_data_min ($g['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'avg':
|
||||
default:
|
||||
$value_res = reporting_get_agentmodule_data_average ($g['id_agent_module'], $content['period']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($value_res === false) {
|
||||
$data[$agent_name][$module_name] = '--';
|
||||
}
|
||||
else {
|
||||
if (!is_numeric($value_res)) {
|
||||
$data[$agent_name][$module_name] = $value_res;
|
||||
}
|
||||
else {
|
||||
$data[$agent_name][$module_name] = format_for_graph($value_res, 2) . " " . $unit;
|
||||
}
|
||||
}
|
||||
|
||||
// Save the modules
|
||||
$list_modules[$module_name] = null;
|
||||
|
||||
// Restore dbconnection
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
}
|
||||
|
||||
$table2->width = '99%';
|
||||
$table2->data = array ();
|
||||
$table2->head = array ();
|
||||
$table2->head[0] = __('Agent');
|
||||
$table2->style[0] = 'text-align: left';
|
||||
$i = 1;
|
||||
foreach (array_keys($list_modules) as $module) {
|
||||
$table2->head[$i] =
|
||||
ui_print_truncate_text($module, 20, false);
|
||||
$table2->style[$i] = 'text-align: center';
|
||||
$i++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach ($data as $agent_name => $agent) {
|
||||
$row = array();
|
||||
$row[] = $agent_name;
|
||||
foreach (array_keys($list_modules) as $module_name) {
|
||||
if (!isset($agent[$module_name])) {
|
||||
$row[] = '--';
|
||||
}
|
||||
else {
|
||||
$row[] = $agent[$module_name];
|
||||
}
|
||||
}
|
||||
$table2->data[] = $row;
|
||||
}
|
||||
|
||||
$data = array();
|
||||
$data[0] = html_print_table($table2, true);
|
||||
array_push ($table->data, $data);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($content['show_resume'] && count($generals) > 0) {
|
||||
|
||||
//Get the first valid value and assign it to $min & $max
|
||||
$min = false;
|
||||
$min_name_agent_module = '';
|
||||
$max_name_agent_module = '';
|
||||
$min_unit = '';
|
||||
$max_unit = '';
|
||||
$i=0;
|
||||
do {
|
||||
//Metaconsole connection
|
||||
$server_name = $generals[$i]['server_name'];
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
$connection = metaconsole_get_connection($server_name);
|
||||
if (metaconsole_load_external_db($connection) != NOERR) {
|
||||
//ui_print_error_message ("Error connecting to ".$server_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($content['period'] == 0) {
|
||||
$min =
|
||||
modules_get_last_value($generals[$i]['id_agent_module']);
|
||||
}
|
||||
else {
|
||||
switch ($generals[$i]['operation']) {
|
||||
case 'sum':
|
||||
$min = reporting_get_agentmodule_data_sum ($generals[$i]['id_agent_module'], $content['period'], $report["datetime"]);
|
||||
break;
|
||||
case 'max':
|
||||
$min = reporting_get_agentmodule_data_max ($generals[$i]['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'min':
|
||||
$min = reporting_get_agentmodule_data_min ($generals[$i]['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'avg':
|
||||
default:
|
||||
$min = reporting_get_agentmodule_data_average ($generals[$i]['id_agent_module'], $content['period']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
|
||||
$min_name_agent_module =
|
||||
modules_get_agentmodule_name($generals[$i]['id_agent_module']) .
|
||||
" - " .
|
||||
modules_get_agentmodule_agent_name($generals[$i]['id_agent_module']) .
|
||||
" (" . $generals[$i]['operation'] . ")";
|
||||
|
||||
$min_unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $generals[$i]['id_agent_module']);
|
||||
|
||||
//Restore dbconnection
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
}
|
||||
while ($min === false && $i < count($generals));
|
||||
|
||||
$max = $min;
|
||||
$max_name_agent_module = $min_name_agent_module;
|
||||
$max_unit = $min_unit;
|
||||
$avg = 0;
|
||||
$length = 0;
|
||||
|
||||
if ($generals === false) {
|
||||
$generals = array();
|
||||
}
|
||||
|
||||
foreach ($generals as $g) {
|
||||
//Metaconsole connection
|
||||
$server_name = $g['server_name'];
|
||||
if (($config ['metaconsole'] == 1) && $server_name != '' && defined('METACONSOLE')) {
|
||||
$connection = metaconsole_get_connection($server_name);
|
||||
if (metaconsole_load_external_db($connection) != NOERR) {
|
||||
//ui_print_error_message ("Error connecting to ".$server_name);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($content['period'] == 0) {
|
||||
$value =
|
||||
modules_get_last_value($g['id_agent_module']);
|
||||
}
|
||||
else {
|
||||
switch ($g['operation']) {
|
||||
case 'sum':
|
||||
$value = reporting_get_agentmodule_data_sum ($g['id_agent_module'], $content['period'], $report["datetime"]);
|
||||
break;
|
||||
case 'max':
|
||||
$value = reporting_get_agentmodule_data_max ($g['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'min':
|
||||
$value = reporting_get_agentmodule_data_min ($g['id_agent_module'], $content['period']);
|
||||
break;
|
||||
case 'avg':
|
||||
default:
|
||||
$value = reporting_get_agentmodule_data_average ($g['id_agent_module'], $content['period']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($value !== false) {
|
||||
if ($value > $max) {
|
||||
$max = $value;
|
||||
$max_name_agent_module =
|
||||
modules_get_agentmodule_name($g['id_agent_module']) .
|
||||
" - " .
|
||||
modules_get_agentmodule_agent_name($g['id_agent_module']) .
|
||||
" (" . $g['operation'] . ")";
|
||||
$max_unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $g['id_agent_module']);
|
||||
}
|
||||
if ($value < $min ) {
|
||||
$min = $value;
|
||||
$min_name_agent_module =
|
||||
modules_get_agentmodule_name($g['id_agent_module']) .
|
||||
" - " .
|
||||
modules_get_agentmodule_agent_name($g['id_agent_module']) .
|
||||
" (" . $g['operation'] . ")";
|
||||
$min_unit = db_get_value('unit', 'tagente_modulo', 'id_agente_modulo', $g['id_agent_module']);
|
||||
}
|
||||
$avg += $value;
|
||||
$length++;
|
||||
}
|
||||
|
||||
//Restore dbconnection
|
||||
if (($config ['metaconsole'] == 1)
|
||||
&& $server_name != ''
|
||||
&& defined('METACONSOLE')) {
|
||||
metaconsole_restore_db();
|
||||
}
|
||||
}
|
||||
if ($length == 0) {
|
||||
$avg = 0;
|
||||
}
|
||||
else {
|
||||
$avg = $avg / $length;
|
||||
}
|
||||
|
||||
unset($table_summary);
|
||||
$table_summary->width = '99%';
|
||||
|
||||
$table_summary->data = array ();
|
||||
$table_summary->head = array ();
|
||||
$table_summary->head_colspan = array ();
|
||||
$table_summary->align = array();
|
||||
|
||||
$table_summary->align[0] = 'left';
|
||||
$table_summary->align[1] = 'left';
|
||||
$table_summary->align[2] = 'left';
|
||||
$table_summary->align[3] = 'left';
|
||||
$table_summary->align[4] = 'left';
|
||||
|
||||
$table_summary->head_colspan[0] = 2;
|
||||
$table_summary->head[0] = __('Min Value');
|
||||
$table_summary->head[1] = __('Average Value');
|
||||
$table_summary->head_colspan[2] = 2;
|
||||
$table_summary->head[2] = __('Max Value');
|
||||
|
||||
$table_summary->data[0][0] = $min_name_agent_module;
|
||||
$table_summary->data[0][1] = format_for_graph($min,2) . ' ' . $min_unit;
|
||||
$table_summary->data[0][2] = format_for_graph($avg,2);
|
||||
$table_summary->data[0][3] = $max_name_agent_module;
|
||||
$table_summary->data[0][4] = format_for_graph($max,2) . ' ' . $max_unit;
|
||||
|
||||
$table->colspan[3][0] = 3;
|
||||
array_push ($table->data,
|
||||
array('<b>' . __('Summary') . '</b>'));
|
||||
$table->colspan[4][0] = 3;
|
||||
array_push ($table->data,
|
||||
array(html_print_table($table_summary, true)));
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'top_n':
|
||||
$top_n = $content['top_n'];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user