From 834a613493e48e973e9cb7b7176c951365f8491e Mon Sep 17 00:00:00 2001 From: Arturo Gonzalez Date: Thu, 20 Oct 2016 10:47:12 +0200 Subject: [PATCH] Added a function to remove right zeros in precision data feature (cherry picked from commit 26862b5f9d6b3b170b76cf648cd1eb15c1c6334f) --- pandora_console/include/ajax/module.php | 4 +- .../ajax/visual_console_builder.ajax.php | 4 +- pandora_console/include/functions.php | 5 + pandora_console/include/functions_graph.php | 190 ++++++++++++++---- pandora_console/include/functions_modules.php | 62 +++++- .../include/functions_reporting_html.php | 22 +- .../include/functions_visual_map.php | 6 +- .../include/graphs/functions_flot.php | 9 +- .../operation/agentes/status_monitor.php | 106 +++++----- 9 files changed, 295 insertions(+), 113 deletions(-) diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index c3e166a4e2..3739d379b4 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -284,7 +284,7 @@ if ($get_module_detail) { } else if (is_numeric($row[$attr[0]]) && !modules_is_string_type($row['module_type']) ) { - $data[] = (double) $row[$attr[0]]; + $data[] = remove_right_zeros(number_format($row[$attr[0]], $config['graph_precision'])); } else { if ($row[$attr[0]] == '') { @@ -854,7 +854,6 @@ if ($list_modules) { modules_get_status($module['id_agente_modulo'], $module['estado'], $module_value, $status, $title); - $data[5] = ui_print_status_image($status, $title, true); if (!$show_context_help_first_time) { $show_context_help_first_time = true; @@ -864,7 +863,6 @@ if ($list_modules) { } } - if ($module["id_tipo_modulo"] == 24) { // log4x switch($module["datos"]) { diff --git a/pandora_console/include/ajax/visual_console_builder.ajax.php b/pandora_console/include/ajax/visual_console_builder.ajax.php index 0d2652de11..b599b2a2ab 100755 --- a/pandora_console/include/ajax/visual_console_builder.ajax.php +++ b/pandora_console/include/ajax/visual_console_builder.ajax.php @@ -344,10 +344,10 @@ switch ($action) { $return = array(); if ($returnValue_value[1] != "") { - $return['value'] = number_format($returnValue_value[0], $config['graph_precision']) . " " . $returnValue_value[1]; + $return['value'] = remove_right_zeros(number_format($returnValue_value[0], $config['graph_precision'])) . " " . $returnValue_value[1]; } else { - $return['value'] = number_format($returnValue_value[0], $config['graph_precision']); + $return['value'] = remove_right_zeros(number_format($returnValue_value[0], $config['graph_precision'])); } $return['max_percentile'] = $layoutData['height']; $return['width_percentile'] = $layoutData['width']; diff --git a/pandora_console/include/functions.php b/pandora_console/include/functions.php index a64adabc01..d3819d53fc 100644 --- a/pandora_console/include/functions.php +++ b/pandora_console/include/functions.php @@ -2654,4 +2654,9 @@ function pandora_setlocale() { setlocale(LC_ALL, str_replace(array_keys($replace_locale), $replace_locale, $user_language)); } + +function remove_right_zeros ($value) { + $value_to_return = rtrim($value, "0"); + return rtrim($value_to_return, "."); +} ?> diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php index 5fb8a84ecd..f3c298ec55 100644 --- a/pandora_console/include/functions_graph.php +++ b/pandora_console/include/functions_graph.php @@ -21,6 +21,7 @@ include_once($config['homedir'] . "/include/functions_modules.php"); include_once($config['homedir'] . "/include/functions_users.php"); function get_graph_statistics ($chart_array) { + global $config; /// IMPORTANT! /// @@ -73,10 +74,10 @@ function get_graph_statistics ($chart_array) { } //Format stat data to display properly - $stats['last'] = round($stats['last'], 2); - $stats['avg'] = round($stats['avg'], 2); - $stats['min'] = round($stats['min'], 2); - $stats['max'] = round($stats['max'], 2); + $stats['last'] = remove_right_zeros(number_format($stats['last'], $config['graph_precision'])); + $stats['avg'] = remove_right_zeros(number_format($stats['avg'], $config['graph_precision'])); + $stats['min'] = remove_right_zeros(number_format($stats['min'], $config['graph_precision'])); + $stats['max'] = remove_right_zeros(number_format($stats['max'], $config['graph_precision'])); return $stats; } @@ -733,16 +734,16 @@ function grafico_modulo_sparse_data ($agent_module_id, $period, $show_events, if ($dashboard || $vconsole) { $legend['sum'.$series_suffix] = - __('Last') . ': ' . rtrim(number_format($graph_stats['sum']['last'], $config['graph_precision']), '.0') . ($unit ? ' ' . $unit : '') . ' ; ' - . __('Avg') . ': ' . rtrim(number_format($graph_stats['sum']['avg'], $config['graph_precision']), '.0') . ($unit ? ' ' . $unit : ''); + __('Last') . ': ' . remove_right_zeros(number_format($graph_stats['sum']['last'], $config['graph_precision'])) . ($unit ? ' ' . $unit : '') . ' ; ' + . __('Avg') . ': ' . remove_right_zeros(number_format($graph_stats['sum']['avg'], $config['graph_precision'])) . ($unit ? ' ' . $unit : ''); } else if (!$avg_only) { - $legend['max'.$series_suffix] = __('Max').$series_suffix_str.': '.__('Last').': '.rtrim(number_format($graph_stats['max']['last'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Avg').': '.rtrim(number_format($graph_stats['max']['avg'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Max').': '.rtrim(number_format($graph_stats['max']['max'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Min').': '.rtrim(number_format($graph_stats['max']['min'], $config['graph_precision']), '.0').' '.$unit.' --> '.__('Selected'); - $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.rtrim(number_format($graph_stats['sum']['last'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Avg').': '.rtrim(number_format($graph_stats['sum']['avg'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Max').': '.rtrim(number_format($graph_stats['sum']['max'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Min').': '.rtrim(number_format($graph_stats['sum']['min'], $config['graph_precision']), '.0').' '.$unit.' --> '.__('Selected'); - $legend['min'.$series_suffix] = __('Min').$series_suffix_str.': '.__('Last').': '.rtrim(number_format($graph_stats['min']['last'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Avg').': '.rtrim(number_format($graph_stats['min']['avg'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Max').': '.rtrim(number_format($graph_stats['min']['max'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Min').': '.rtrim(number_format($graph_stats['min']['min'], $config['graph_precision']), '.0').' '.$unit.' --> '.__('Selected'); + $legend['max'.$series_suffix] = __('Max').$series_suffix_str.': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['max']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['max']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['max']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['max']['min'], $config['graph_precision'])).' '.$unit.' --> '.__('Selected'); + $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['sum']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['sum']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['sum']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['sum']['min'], $config['graph_precision'])).' '.$unit.' --> '.__('Selected'); + $legend['min'.$series_suffix] = __('Min').$series_suffix_str.': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['min']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['min']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['min']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['min']['min'], $config['graph_precision'])).' '.$unit.' --> '.__('Selected'); } else { - $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.rtrim(number_format($graph_stats['sum']['last'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Avg').': '.rtrim(number_format($graph_stats['sum']['avg'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Max').': '.rtrim(number_format($graph_stats['sum']['max'], $config['graph_precision']), '.0').' '.$unit.' ; '.__('Min').': '.rtrim(number_format($graph_stats['sum']['min'], $config['graph_precision']), '.0').' '.$unit.' --> '.__('Selected'); + $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['sum']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['sum']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['sum']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['sum']['min'], $config['graph_precision'])).' '.$unit.' --> '.__('Selected'); } //Baseline was replaced by compare graph feature /*if ($baseline) { @@ -1013,7 +1014,7 @@ function graphic_combined_module ($module_list, $weight_list, $period, if ($date == 0) $date = get_system_time(); $datelimit = $date - $period; - $search_in_history_db = db_search_in_history_db($datelimit); + $resolution = $config['graph_res'] * 50; //Number of points of the graph $interval = (int) ($period / $resolution); @@ -1084,16 +1085,36 @@ function graphic_combined_module ($module_list, $weight_list, $period, // Calculate data for each module for ($i = 0; $i < $module_number; $i++) { - // If its a projection graph, first module will be data and second will be the projection + $automatic_custom_graph_meta = false; + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[$i])) { + $server = metaconsole_get_connection_by_id ($module_list[$i]['server']); + metaconsole_connect($server); + $automatic_custom_graph_meta = true; + } + } + + $search_in_history_db = db_search_in_history_db($datelimit); + + // If its a projection graph, + // first module will be data and second will be the projection if ($projection != false && $i != 0) { - $agent_module_id = $module_list[0]; + if ($automatic_custom_graph_meta) + $agent_module_id = $module_list[0]['module']; + else + $agent_module_id = $module_list[0]; $id_module_type = modules_get_agentmodule_type ($agent_module_id); $module_type = modules_get_moduletype_name ($id_module_type); $uncompressed_module = is_module_uncompressed ($module_type); } else { - $agent_module_id = $module_list[$i]; + if ($automatic_custom_graph_meta) + $agent_module_id = $module_list[$i]['module']; + else + $agent_module_id = $module_list[$i]; + $id_module_type = modules_get_agentmodule_type ($agent_module_id); $module_type = modules_get_moduletype_name ($id_module_type); @@ -1175,7 +1196,7 @@ function graphic_combined_module ($module_list, $weight_list, $period, $module_name = io_safe_output( modules_get_agentmodule_name ($agent_module_id)); - $module_name_list[$i] = '' . $agent_name . " / " . $module_name. ''; + $module_name_list[$i] = $agent_name ." / ". $module_name; } } else { @@ -1193,9 +1214,9 @@ function graphic_combined_module ($module_list, $weight_list, $period, $module_name = ui_print_truncate_text($module_name, 'module_small', false, true, false, '...', false); if ($labels[$agent_module_id] != '') - $module_name_list[$i] = '' . $labels[$agent_module_id] . ''; + $module_name_list[$i] = $labels[$agent_module_id]; else - $module_name_list[$i] = '' . $agent_name . ' / ' . $module_name . ''; + $module_name_list[$i] = $agent_name . ' / ' . $module_name; } // Data iterator @@ -1327,30 +1348,30 @@ function graphic_combined_module ($module_list, $weight_list, $period, $last = $graph_stats['last']; if ($min > 1000000) - $min = sprintf("%sM", number_format($min / 1000000, $config['graph_precision'])); + $min = sprintf("%sM", remove_right_zeros(number_format($min / 1000000, remove_right_zeros))); else if ($min > 1000) - $min = sprintf("%sK", number_format($min / 1000, $config['graph_precision'])); + $min = sprintf("%sK", remove_right_zeros(number_format($min / 1000, $config['graph_precision']))); if ($max > 1000000) - $max = sprintf("%sM", number_format($max / 1000000, $config['graph_precision'])); + $max = sprintf("%sM", remove_right_zeros(number_format($max / 1000000, $config['graph_precision']))); else if ($max > 1000) - $max = sprintf("%sK", number_format($max / 1000, $config['graph_precision'])); + $max = sprintf("%sK", remove_right_zeros(number_format($max / 1000, $config['graph_precision']))); if ($avg > 1000000) - $avg = sprintf("%sM", number_format($avg / 1000000, $config['graph_precision'])); + $avg = sprintf("%sM", remove_right_zeros(number_format($avg / 1000000, $config['graph_precision']))); else if ($avg > 1000) - $avg = sprintf("%sK", number_format($avg / 1000, $config['graph_precision'])); + $avg = sprintf("%sK", remove_right_zeros(number_format($avg / 1000, $config['graph_precision']))); if ($last > 1000000) - $last = sprintf("%sM", number_format($last / 1000000, $config['graph_precision'])); + $last = sprintf("%sM", remove_right_zeros(number_format($last / 1000000, $config['graph_precision']))); else if ($last > 1000) - $last = sprintf("%sK", number_format($last / 1000, $config['graph_precision'])); + $last = sprintf("%sK", remove_right_zeros(number_format($last / 1000, $config['graph_precision']))); } else { - $min = number_format($graph_stats['min'], $config['graph_precision']); - $max = number_format($graph_stats['max'], $config['graph_precision']); - $avg = number_format($graph_stats['avg'], $config['graph_precision']); - $last = number_format($graph_stats['last'], $config['graph_precision']); + $min = remove_right_zeros(number_format($graph_stats['min'], $config['graph_precision'])); + $max = remove_right_zeros(number_format($graph_stats['max'], $config['graph_precision'])); + $avg = remove_right_zeros(number_format($graph_stats['avg'], $config['graph_precision'])); + $last = remove_right_zeros(number_format($graph_stats['last'], $config['graph_precision'])); } @@ -1382,6 +1403,13 @@ function graphic_combined_module ($module_list, $weight_list, $period, //unset($graph_values[$i]); //$graph_values[$i] = $graph_values[$i]; + + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[0])) { + metaconsole_restore_db(); + } + } } $temp = array(); @@ -1399,7 +1427,7 @@ function graphic_combined_module ($module_list, $weight_list, $period, $flash_charts = false; } - if ($flash_charts === false && $stacked == CUSTOM_GRAPH_GAUGE) + if ($flash_charts === false && $stacked == CUSTOM_GRAPH_GAUGE) $stacked = CUSTOM_GRAPH_BULLET_CHART; switch ($stacked) { @@ -1485,14 +1513,39 @@ function graphic_combined_module ($module_list, $weight_list, $period, if ($temp_min < 0) $temp_min = 0; $temp[$module]['min'] = ($temp_min === false) ? 0 : $temp_min; + + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[0])) { + metaconsole_restore_db(); + } + } + } + break; case CUSTOM_GRAPH_HBARS: case CUSTOM_GRAPH_VBARS: $datelimit = $date - $period; $label = ''; - foreach ($module_list as $module) { + foreach ($module_list as $module_item) { + $automatic_custom_graph_meta = false; + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[$i])) { + $server = metaconsole_get_connection_by_id ($module_item['server']); + metaconsole_connect($server); + $automatic_custom_graph_meta = true; + } + } + + if ($automatic_custom_graph_meta) + $module = $module_item['module']; + else + $module = $module_item; + + $module_data = modules_get_agentmodule($module); $query_last_value = sprintf(' SELECT datos @@ -1511,13 +1564,36 @@ function graphic_combined_module ($module_list, $weight_list, $period, else $label = $agent_name . " - " .$module_data['nombre']; $temp[$label]['g'] = round($temp_data,4); + + + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[0])) { + metaconsole_restore_db(); + } + } + } break; case CUSTOM_GRAPH_PIE: $datelimit = $date - $period; $total_modules = 0; - - foreach ($module_list as $module) { + foreach ($module_list as $module_item) { + $automatic_custom_graph_meta = false; + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[$i])) { + $server = metaconsole_get_connection_by_id ($module_item['server']); + metaconsole_connect($server); + $automatic_custom_graph_meta = true; + } + } + + if ($automatic_custom_graph_meta) + $module = $module_item['module']; + else + $module = $module_item; + $data_module = modules_get_agentmodule($module); $query_last_value = sprintf(' SELECT datos @@ -1549,13 +1625,35 @@ function graphic_combined_module ($module_list, $weight_list, $period, $temp[$label] = array('value'=>$value, 'unit'=>$data_module['unit']); + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[0])) { + metaconsole_restore_db(); + } + } } $temp['total_modules'] = $total_modules; break; case CUSTOM_GRAPH_GAUGE: $datelimit = $date - $period; - foreach ($module_list as $module) { + $i = 0; + foreach ($module_list as $module_item) { + $automatic_custom_graph_meta = false; + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[$i])) { + $server = metaconsole_get_connection_by_id ($module_item['server']); + metaconsole_connect($server); + $automatic_custom_graph_meta = true; + } + } + + if ($automatic_custom_graph_meta) + $module = $module_item['module']; + else + $module = $module_item; + $temp[$module] = modules_get_agentmodule($module); $query_last_value = sprintf(' SELECT datos @@ -1593,6 +1691,14 @@ function graphic_combined_module ($module_list, $weight_list, $period, $temp[$module]['max'] = ($max == 0 ) ? 100 : $max; } $temp[$module]['gauge'] = uniqid('gauge_'); + + if ($config['metaconsole']) { + // Automatic custom graph from the report template in metaconsole + if (is_array($module_list[0])) { + metaconsole_restore_db(); + } + } + $i++; } break; default: @@ -1640,7 +1746,7 @@ function graphic_combined_module ($module_list, $weight_list, $period, //Work around for fixed the agents name with huge size chars. - $fixed_font_size = $config['font_size'] - 2; + $fixed_font_size = $config['font_size']; //Set graph color @@ -3644,12 +3750,12 @@ function grafico_modulo_boolean_data ($agent_module_id, $period, $show_events, if (!$avg_only) { //Boolean graph doesn't have max!!! //$legend['max'.$series_suffix] = __('Max').$series_suffix_str .': '.__('Last').': '.$graph_stats['max']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['max']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['max']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['max']['min'].' '.$unit; - $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.$graph_stats['sum']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['sum']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['sum']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['sum']['min'].' '.$unit; + $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['sum']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['sum']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['sum']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['sum']['min'], $config['graph_precision'])).' '.$unit; // Boolean graph doesn't have min!!! - // $legend['min'.$series_suffix] = __('Min').$series_suffix_str .': '.__('Last').': '.$graph_stats['min']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['min']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['min']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['min']['min'].' '.$unit; + // $legend['min'.$series_suffix] = __('Min').$series_suffix_str .': '.__('Last').': '.number_format($graph_stats['min']['last'], $config['graph_precision']).' '.$unit.' ; '.__('Avg').': '.number_format($graph_stats['min']['avg'], $config['graph_precision']).' '.$unit.' ; '.__('Max').': '.number_format($graph_stats['min']['max'], $config['graph_precision']).' '.$unit.' ; '.__('Min').': '.number_format($graph_stats['min']['min'], $config['graph_precision']).' '.$unit; } else { - $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.$graph_stats['sum']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['sum']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['sum']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['sum']['min'].' '.$unit; + $legend['sum'.$series_suffix] = __('Avg').$series_suffix_str.': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['sum']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['sum']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['sum']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['sum']['min'], $config['graph_precision'])).' '.$unit; } @@ -4310,13 +4416,13 @@ function grafico_modulo_string ($agent_module_id, $period, $show_events, } if (!$avg_only) { - $legend['max'] = __('Max').': '.__('Last').': '.$graph_stats['max']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['max']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['max']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['max']['min'].' '.$unit; + $legend['max'] = __('Max').': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['max']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['max']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['max']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['max']['min'], $config['graph_precision'])).' '.$unit; } - $legend['sum'] = __('Avg').': '.__('Last').': '.$graph_stats['sum']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['sum']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['sum']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['sum']['min'].' '.$unit; + $legend['sum'] = __('Avg').': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['sum']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['sum']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['sum']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['sum']['min'], $config['graph_precision'])).' '.$unit; if (!$avg_only) { - $legend['min'] = __('Min').': '.__('Last').': '.$graph_stats['min']['last'].' '.$unit.' ; '.__('Avg').': '.$graph_stats['min']['avg'].' '.$unit.' ; '.__('Max').': '.$graph_stats['min']['max'].' '.$unit.' ; '.__('Min').': '.$graph_stats['min']['min'].' '.$unit; + $legend['min'] = __('Min').': '.__('Last').': '.remove_right_zeros(number_format($graph_stats['min']['last'], $config['graph_precision'])).' '.$unit.' ; '.__('Avg').': '.remove_right_zeros(number_format($graph_stats['min']['avg'], $config['graph_precision'])).' '.$unit.' ; '.__('Max').': '.remove_right_zeros(number_format($graph_stats['min']['max'], $config['graph_precision'])).' '.$unit.' ; '.__('Min').': '.remove_right_zeros(number_format($graph_stats['min']['min'], $config['graph_precision'])).' '.$unit; } $water_mark = array('file' => $config['homedir'] . "/images/logo_vertical_water.png", @@ -4930,7 +5036,7 @@ function graph_monitor_wheel ($width = 550, $height = 600, $filter = false) { } if (!empty($data_groups)) { - $filter = array('id_grupo' => array_keys($groups)); + $filter = array('id_grupo' => array_keys($data_groups)); $fields = array('id_agente', 'id_parent', 'id_grupo', 'nombre'); $agents = agents_get_agents($filter, $fields); diff --git a/pandora_console/include/functions_modules.php b/pandora_console/include/functions_modules.php index 878bb877ae..d750687d36 100755 --- a/pandora_console/include/functions_modules.php +++ b/pandora_console/include/functions_modules.php @@ -534,6 +534,7 @@ function modules_create_agent_module ($id_agent, $name, $values = false, $disabl 'datos' => 0, 'timestamp' => '01-01-1970 00:00:00', 'estado' => $status, + 'known_status' => $status, 'id_agente' => (int) $id_agent, 'utimestamp' => 0, 'status_changes' => 0, @@ -547,6 +548,7 @@ function modules_create_agent_module ($id_agent, $name, $values = false, $disabl 'datos' => 0, 'timestamp' => null, 'estado' => $status, + 'known_status' => $status, 'id_agente' => (int) $id_agent, 'utimestamp' => 0, 'status_changes' => 0, @@ -560,6 +562,7 @@ function modules_create_agent_module ($id_agent, $name, $values = false, $disabl 'datos' => 0, 'timestamp' => '#to_date(\'1970-01-01 00:00:00\', \'YYYY-MM-DD HH24:MI:SS\')', 'estado' => $status, + 'known_status' => $status, 'id_agente' => (int) $id_agent, 'utimestamp' => 0, 'status_changes' => 0, @@ -1569,7 +1572,7 @@ function modules_get_agentmodule_status($id_agentmodule = 0, $without_alerts = f function modules_get_agentmodule_last_status($id_agentmodule = 0) { $status_row = db_get_row ("tagente_estado", "id_agente_modulo", $id_agentmodule); - return $status_row['last_known_status']; + return $status_row['known_status']; } /** @@ -1837,6 +1840,7 @@ function modules_get_modulegroup_name ($modulegroup_id) { function modules_get_status($id_agent_module, $db_status, $data, &$status, &$title) { $status = STATUS_MODULE_WARNING; $title = ""; + global $config; // This module is initialized ? (has real data) //$module_init = db_get_value ('utimestamp', 'tagente_estado', 'id_agente_modulo', $id_agent_module); @@ -1876,7 +1880,7 @@ function modules_get_status($id_agent_module, $db_status, $data, &$status, &$tit } if (is_numeric($data)) { - $title .= ": " . format_for_graph($data); + $title .= ": " . remove_right_zeros(number_format($data, $config['graph_precision'])); } else { $text = io_safe_output($data); @@ -2329,6 +2333,60 @@ function modules_get_unknown_time ($id_agent_module, $date, $period){ return $unknown_seconds; } + +function modules_get_module_group_status($id_agent, $id_module_group) { + $status_return = null; + + + $modules = db_get_all_rows_filter('tagente_modulo', + array('id_agente' => $id_agent, + 'id_module_group' => $id_module_group)); + + if (empty($modules)) + $module = array(); + + foreach ($modules as $module) { + $status = modules_get_status($module['id_agente_modulo']); + + // This code is copied from the networkmap old code + switch ($status) { + case AGENT_MODULE_STATUS_NORMAL: + if (is_null($status_return)) { + $status_return = AGENT_MODULE_STATUS_NORMAL; + } + elseif ($status_return == AGENT_MODULE_STATUS_ALL) { + $status_return = AGENT_MODULE_STATUS_NORMAL; + } + break; + case AGENT_MODULE_STATUS_CRITICAL_BAD: + $status_return = AGENT_MODULE_STATUS_CRITICAL_BAD; + break; + case AGENT_MODULE_STATUS_WARNING: + if (is_null($status_return)) { + $status_return = AGENT_MODULE_STATUS_NORMAL; + } + elseif ($status_return != AGENT_MODULE_STATUS_CRITICAL_BAD) { + $status_return = AGENT_MODULE_STATUS_WARNING; + } + break; + case AGENT_MODULE_STATUS_NO_DATA: + if (is_null($status_return)) { + $status_return = AGENT_MODULE_STATUS_NO_DATA; + } + elseif (($status_return == AGENT_MODULE_STATUS_NORMAL) || + ($status_return == AGENT_MODULE_STATUS_ALL)) { + $status_return = AGENT_MODULE_STATUS_NO_DATA; + } + break; + default: + $status_return = AGENT_MODULE_STATUS_ALL; + break; + } + } + + return $status_return; +} + function modules_get_modules_name ($sql_from , $sql_conditions = '', $meta = false) { global $config; diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index b1638619d6..5f10a5b4ac 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -353,7 +353,7 @@ function reporting_html_SLA($table, $item, $mini) { $row = array(); $row[] = $sla['agent']; $row[] = $sla['module']; - $row[] = number_format($sla['max'], $config['graph_precision']) . " / " . number_format($sla['min'], $config['graph_precision']); + $row[] = remove_right_zeros(number_format($sla['max'], $config['graph_precision'])) . " / " . remove_right_zeros(number_format($sla['min'], $config['graph_precision'])); $row[] = round($sla['sla_limit'], 2) . "%"; if ($sla['sla_value_unknown']) { @@ -380,7 +380,7 @@ function reporting_html_SLA($table, $item, $mini) { $row = array(); $row[] = $sla['agent']; $row[] = $sla['module']; - $row[] = number_format($sla['max'], $config['graph_precision']) . " / " . number_format($sla['min'], $config['graph_precision']); + $row[] = remove_right_zeros(number_format($sla['max'], $config['graph_precision'])) . " / " . remove_right_zeros(number_format($sla['min'], $config['graph_precision'])); $row[] = round($sla['sla_limit'], 2) . "%"; if ($sla['sla_value_unknown']) { @@ -1509,13 +1509,13 @@ function reporting_html_monitor_report($table, $item, $mini) { '

'; $table1->data['data']['ok'] .= html_print_image("images/module_ok.png", true) . ' ' . - __('OK') . ': ' . number_format($item['data']["ok"]["formated_value"], $config['graph_precision']).' %

'; + __('OK') . ': ' . remove_right_zeros(number_format($item['data']["ok"]["formated_value"], $config['graph_precision'])).' %

'; $table1->data['data']['fail'] = '

'; $table1->data['data']['fail'] .= html_print_image("images/module_critical.png", true) . ' ' . - __('Not OK') . ': ' . number_format($item['data']["fail"]["formated_value"], $config['graph_precision']) . ' % ' . '

'; + __('Not OK') . ': ' . remove_right_zeros(number_format($item['data']["fail"]["formated_value"], $config['graph_precision'])) . ' % ' . '

'; } $table->data['module']['cell'] = html_print_table($table1, true); @@ -1753,10 +1753,10 @@ function reporting_html_availability(&$table, $item) { $table_row[] = $row['availability_item']; $table_row[] = $row['checks']; $table_row[] = $row['failed']; - $table_row[] = number_format($row['fail'], $config['graph_precision']); + $table_row[] = remove_right_zeros(number_format($row['fail'], $config['graph_precision'])); $table_row[] = $row['poling_time']; $table_row[] = $row['time_unavaliable']; - $table_row[] = number_format($row['ok'], $config['graph_precision']); + $table_row[] = remove_right_zeros(number_format($row['ok'], $config['graph_precision'])); } else { if ($item['date']['to'] > $the_first_men_time) { @@ -1765,10 +1765,10 @@ function reporting_html_availability(&$table, $item) { $table_row[] = $row['availability_item']; $table_row[] = $row['checks']; $table_row[] = $row['failed']; - $table_row[] = number_format($row['fail'], $config['graph_precision']); + $table_row[] = remove_right_zeros(number_format($row['fail'], $config['graph_precision'])); $table_row[] = $row['poling_time']; $table_row[] = $row['time_unavaliable']; - $table_row[] = number_format($row['ok'], $config['graph_precision']); + $table_row[] = remove_right_zeros(number_format($row['ok'], $config['graph_precision'])); } else { $same_agent_in_resume = $row['agent']; @@ -1818,10 +1818,10 @@ function reporting_html_availability(&$table, $item) { $table1->data[] = array( 'max_text' => $item['resume']['min_text'], - 'max' => number_format($item['resume']['max'], $config['graph_precision']) . "%", - 'avg' => number_format($item['resume']['avg'], $config['graph_precision']) . "%", + 'max' => remove_right_zeros(number_format($item['resume']['max'], $config['graph_precision'])) . "%", + 'avg' => remove_right_zeros(number_format($item['resume']['avg'], $config['graph_precision'])) . "%", 'min_text' => $item['resume']['max_text'], - 'min' => number_format($item['resume']['min'], $config['graph_precision']) . "%" + 'min' => remove_right_zeros(number_format($item['resume']['min'], $config['graph_precision'])) . "%" ); $table->colspan[2][0] = 3; diff --git a/pandora_console/include/functions_visual_map.php b/pandora_console/include/functions_visual_map.php index 7b9bffd7ca..22bc53f889 100755 --- a/pandora_console/include/functions_visual_map.php +++ b/pandora_console/include/functions_visual_map.php @@ -1016,16 +1016,16 @@ function visual_map_print_item($mode = "read", $layoutData, $returnValue_value = explode(' ', $value); if ($returnValue_value[1] != "") { - $value = number_format($returnValue_value[0], $config['graph_precision']) . " " . $returnValue_value[1]; + $value = remove_right_zeros(number_format($returnValue_value[0], $config['graph_precision'])) . " " . $returnValue_value[1]; } else { - $value = number_format($returnValue_value[0], $config['graph_precision']); + $value = remove_right_zeros(number_format($returnValue_value[0], $config['graph_precision'])); } } else { // If the value is a string, dont format it if (!is_string($value)) { - $value = format_for_graph($value, $config['graph_precision']); + $value = remove_right_zeros(format_for_graph($value, $config['graph_precision'])); } } diff --git a/pandora_console/include/graphs/functions_flot.php b/pandora_console/include/graphs/functions_flot.php index 9dc16ed161..d8e0c2dc22 100644 --- a/pandora_console/include/graphs/functions_flot.php +++ b/pandora_console/include/graphs/functions_flot.php @@ -50,12 +50,15 @@ function include_javascript_dependencies_flot_graph($return = false) { ui_get_full_url($metaconsole_hack . '/include/graphs/flot/jquery.flot.threshold.js') .'"> + '; $output .= "