fixed graphs

This commit is contained in:
daniel 2018-05-18 14:22:39 +02:00
parent 123d49d604
commit 79354a0ebf
7 changed files with 377 additions and 425 deletions

View File

@ -3004,7 +3004,7 @@ function legend_graph_array(
global $legend;
$unit = $format_graph['unit'];
if (isset($show_elements_graph['labels']) && is_array($show_elements_graph['labels'])){
if (isset($show_elements_graph['labels']) && is_array($show_elements_graph['labels']) && (count($show_elements_graph['labels']) > 0)){
$legend['sum'.$series_suffix] = $show_elements_graph['labels'][$data_module_graph['module_id']] . ' ' ;
}
else{
@ -3066,22 +3066,36 @@ function legend_graph_array(
return $legend;
}
function series_type_graph_array( $series_suffix, $data_module_graph){
function series_type_graph_array($data){
global $config;
global $series_type;
$series_type['event'.$series_suffix] = 'points';
$series_type['alert'.$series_suffix] = 'points';
$series_type['unknown'.$series_suffix] = 'unknown';
switch ($data_module_graph['id_module_type']) {
case 21: case 2: case 6:
case 18: case 9: case 31:
$series_type['sum'.$series_suffix] = 'boolean';
break;
default:
$series_type['sum'.$series_suffix] = 'area';
break;
foreach ($data as $key => $value) {
if(strpos($key, 'sum') !== false){
switch ($value['id_module_type']) {
case 21: case 2: case 6:
case 18: case 9: case 31:
$series_type[$key] = 'boolean';
break;
default:
$series_type[$key] = 'area';
break;
}
}
elseif(strpos($key, 'event') !== false){
$series_type[$key] = 'points';
}
elseif(strpos($key, 'alert') !== false){
$series_type[$key] = 'points';
}
elseif(strpos($key, 'unknown') !== false){
$series_type[$key] = 'unknown';
}
elseif(strpos($key, 'percentil') !== false){
$series_type[$key] = 'percentil';
}
else{
$series_type[$key] = 'area';
}
}
$series_type['percentil' . $series_suffix] = 'percentil';
return $series_type;
}
?>

View File

@ -238,7 +238,8 @@ function custom_graphs_print($id_graph, $height, $width, $period,
$homeurl = ui_get_full_url(false, false, false, false);
}
$output = graphic_combined_module($modules,
$output = graphic_combined_module(
$modules,
$weights,
$period,
$width,
@ -271,7 +272,8 @@ function custom_graphs_print($id_graph, $height, $width, $period,
$fullscale,
$summatory,
$average,
$modules_series);
$modules_series
);
if ($return)
return $output;

View File

@ -331,6 +331,8 @@ function grafico_modulo_sparse_data_chart (
$array_data["sum" . $series_suffix]['max'] = $max_value;
$array_data["sum" . $series_suffix]['avg'] = $sum_data/$count_data;
$array_data["sum" . $series_suffix]['id_module_type'] = $data_module_graph['id_module_type'];
if (!is_null($show_elements_graph['percentil']) &&
$show_elements_graph['percentil'] &&
!$show_elements_graph['flag_overlapped']) {
@ -354,11 +356,10 @@ function grafico_modulo_sparse_data(
$series_suffix, $str_series_suffix) {
global $config;
global $array_data;
//global $array_data;
global $caption;
global $color;
global $legend;
global $series_type;
global $array_events_alerts;
if($show_elements_graph['fullscale']){
@ -465,23 +466,6 @@ function grafico_modulo_sparse_data(
}
}
//XXXX que hacer con baseline
/*
// Get baseline data
$baseline_data = array();
if ($baseline) {
$baseline_data = array ();
if ($baseline == 1) {
$baseline_data = enterprise_hook(
'reporting_enterprise_get_baseline',
array ($agent_module_id, $period, $width, $height , $title, $unit_name, $date));
if ($baseline_data === ENTERPRISE_NOT_HOOK) {
$baseline_data = array ();
}
}
}
*/
if ($show_elements_graph['show_events'] ||
$show_elements_graph['show_alerts'] ) {
@ -603,13 +587,9 @@ function grafico_modulo_sparse_data(
$data_module_graph
);
series_type_graph_array(
$series_suffix,
$data_module_graph
);
$array_events_alerts[$series_suffix] = $events;
return $array_data;
}
function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
@ -621,22 +601,23 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
$menu = true, $backgroundColor = 'white', $percentil = null,
$dashboard = false, $vconsole = false, $type_graph = 'area', $fullscale = false,
$id_widget_dashboard = false,$force_interval = 0,$time_interval = 300,
$max_only = 0, $min_only = 0) {
$max_only = 0, $min_only = 0, $array_data_create = 0) {
global $config;
global $graphic_type;
global $array_data;
//global $array_data;
global $caption;
global $color;
global $legend;
global $series_type;
global $array_events_alerts;
$array_data = array();
$caption = array();
$color = array();
$legend = array();
$series_type = array();
$array_events_alerts = array();
@ -735,58 +716,66 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
$type_graph = $config['type_module_charts'];
if ($show_elements_graph['compare'] !== false) {
$series_suffix = 2;
$series_suffix_str = ' (' . __('Previous') . ')';
if(!$array_data_create){
if ($show_elements_graph['compare'] !== false) {
$series_suffix = 2;
$series_suffix_str = ' (' . __('Previous') . ')';
$date_array_prev['final_date'] = $date_array['start_date'];
$date_array_prev['start_date'] = $date_array['start_date'] - $date_array['period'];
$date_array_prev['period'] = $date_array['period'];
$date_array_prev['final_date'] = $date_array['start_date'];
$date_array_prev['start_date'] = $date_array['start_date'] - $date_array['period'];
$date_array_prev['period'] = $date_array['period'];
if ($show_elements_graph['compare'] === 'overlapped') {
$show_elements_graph['flag_overlapped'] = 1;
}
else{
$show_elements_graph['flag_overlapped'] = 0;
if ($show_elements_graph['compare'] === 'overlapped') {
$show_elements_graph['flag_overlapped'] = 1;
}
else{
$show_elements_graph['flag_overlapped'] = 0;
}
$array_data = grafico_modulo_sparse_data(
$agent_module_id, $date_array_prev,
$data_module_graph, $show_elements_graph,
$format_graph, $exception_interval_graph,
$series_suffix, $series_suffix_str
);
switch ($show_elements_graph['compare']) {
case 'separated':
case 'overlapped':
// Store the chart calculated
$array_data_prev = $array_data;
$legend_prev = $legend;
$color_prev = $color;
$caption_prev = $caption;
break;
}
}
grafico_modulo_sparse_data(
$agent_module_id, $date_array_prev,
$series_suffix = 1;
$series_suffix_str = '';
$show_elements_graph['flag_overlapped'] = 0;
$array_data = grafico_modulo_sparse_data(
$agent_module_id, $date_array,
$data_module_graph, $show_elements_graph,
$format_graph, $exception_interval_graph,
$series_suffix, $series_suffix_str
$series_suffix, $str_series_suffix
);
switch ($show_elements_graph['compare']) {
case 'separated':
case 'overlapped':
// Store the chart calculated
$array_data_prev = $array_data;
$legend_prev = $legend;
$series_type_prev = $series_type;
$color_prev = $color;
$caption_prev = $caption;
break;
if($show_elements_graph['compare']){
if ($show_elements_graph['compare'] === 'overlapped') {
$array_data = array_merge($array_data, $array_data_prev);
$legend = array_merge($legend, $legend_prev);
$color = array_merge($color, $color_prev);
}
}
}
else{
$array_data = $array_data_create;
}
$series_suffix = 1;
$series_suffix_str = '';
$show_elements_graph['flag_overlapped'] = 0;
grafico_modulo_sparse_data(
$agent_module_id, $date_array,
$data_module_graph, $show_elements_graph,
$format_graph, $exception_interval_graph,
$series_suffix, $str_series_suffix
);
if($show_elements_graph['compare']){
if ($show_elements_graph['compare'] === 'overlapped') {
$array_data = array_merge($array_data, $array_data_prev);
$legend = array_merge($legend, $legend_prev);
$color = array_merge($color, $color_prev);
}
if($show_elements_graph['return_data']){
return $array_data;
}
//XXX
@ -801,6 +790,10 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
)
);
$series_type = series_type_graph_array(
$array_data
);
//esto la sparse
//setup_watermark($water_mark, $water_mark_file, $water_mark_url);
@ -829,6 +822,11 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
}
$return .= '<br>';
if (!empty($array_data_prev)) {
$series_type = series_type_graph_array(
$array_data_prev
);
$return .= area_graph(
$agent_module_id,
$array_data_prev,
@ -871,176 +869,6 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
}
return $return;
//de aki al final eliminar;
enterprise_include_once("include/functions_reporting.php");
global $chart;
global $color;
global $color_prev;
global $legend;
global $long_index;
global $series_type;
global $chart_extra_data;
global $warning_min;
global $critical_min;
$series_suffix_str = '';
if ($compare !== false) {
$series_suffix = '2';
$series_suffix_str = ' (' . __('Previous') . ')';
// Build the data of the previous period
grafico_modulo_sparse_data ($agent_module_id, $period,
$show_events, $width, $height, $title, $unit_name,
$show_alerts, $avg_only, $date-$period, $unit, $baseline,
$return_data, $show_title, $projection, $adapt_key,
$compare, $series_suffix, $series_suffix_str,
$show_unknown, $percentil, $dashboard, $vconsole,$type_graph,
$fullscale, $flash_chart,$force_interval,$time_interval,$max_only,$min_only);
switch ($compare) {
case 'separated':
// Store the chart calculated
$chart_prev = $chart;
$legend_prev = $legend;
$long_index_prev = $long_index;
$series_type_prev = $series_type;
$color_prev = $color;
break;
case 'overlapped':
// Store the chart calculated deleting index,
// because will be over the current period
$chart_prev = $chart;
$legend_prev = $legend;
$series_type_prev = $series_type;
$color_prev = $color;
foreach($color_prev as $k => $col) {
$color_prev[$k]['color'] = '#' .
get_complementary_rgb($color_prev[$k]['color']);
}
break;
}
}
// Build the data of the current period
$data_returned = grafico_modulo_sparse_data ($agent_module_id,
$period, $show_events,
$width, $height , $title, $unit_name,
$show_alerts, $avg_only,
$date, $unit, $baseline, $return_data, $show_title,
$projection, $adapt_key, $compare, '', '', $show_unknown,
$percentil, $dashboard, $vconsole, $type_graph, $fullscale,$flash_chart,
$force_interval,$time_interval,$max_only,$min_only);
if ($return_data) {
return $data_returned;
}
if ($compare === 'overlapped') {
/*
$i = 0;
foreach ($chart as $k=>$v) {
if (!isset($chart_prev[$i])) {
continue;
}
$chart[$k] = array_merge($v,$chart_prev[$i]);
$i++;
}
*/
foreach ($chart_prev as $k => $v) {
$chart[$k+$period]['sum2'] = $v['sum2'];
//unset($chart[$k]);
}
/*
$chart["1517834070"]["sum2"] = "5";
$chart["1517834075"]["sum2"] = "6";
$chart["1517834080"]["sum2"] = "7";
$chart["1517834085"]["sum2"] = "8";
$chart["1517834088"]["sum2"] = "3";
*/
ksort($chart);
$legend = array_merge($legend, $legend_prev);
$color = array_merge($color, $color_prev);
}
if ($only_image) {
$flash_chart = false;
}
if($config["fixed_graph"] == false){
$water_mark = array('file' =>
$config['homedir'] . "/images/logo_vertical_water.png",
'url' => ui_get_full_url("images/logo_vertical_water.png", false, false, false));
}
if ($type_graph === 'area') {
if ($compare === 'separated') {
return
area_graph($flash_chart, $chart, $width, $height/2, $color,
$legend, $long_index,
ui_get_full_url("images/image_problem_area_small.png", false, false, false),
$title, $unit, $homeurl, $water_mark, $config['fontpath'],
$config['font_size'], $unit, $ttl, $series_type,
$chart_extra_data, $warning_min, $critical_min,
$adapt_key, false, $series_suffix_str, $menu,
$backgroundColor).
'<br>'.
area_graph($flash_chart, $chart_prev, $width, $height/2,
$color_prev, $legend_prev, $long_index_prev,
ui_get_full_url("images/image_problem_area_small.png", false, false, false),
$title, $unit, $homeurl, $water_mark, $config['fontpath'],
$config['font_size'], $unit, $ttl, $series_type_prev,
$chart_extra_data, $warning_min, $critical_min,
$adapt_key, false, $series_suffix_str, $menu,
$backgroundColor);
}
else {
// Color commented not to restrict serie colors
if($id_widget_dashboard){
$opcion = unserialize(db_get_value_filter('options','twidget_dashboard',array('id' => $id_widget_dashboard)));
$color['min']['color'] = $opcion['min'];
$color['sum']['color'] = $opcion['avg'];
$color['max']['color'] = $opcion['max'];
}
return
area_graph($flash_chart, $chart, $width, $height, $color,
$legend, $long_index,
ui_get_full_url("images/image_problem_area_small.png", false, false, false),
$title, $unit, $homeurl, $water_mark, $config['fontpath'],
$config['font_size'], $unit, $ttl, $series_type,
$chart_extra_data, $warning_min, $critical_min,
$adapt_key, false, $series_suffix_str, $menu,
$backgroundColor, $dashboard, $vconsole, $agent_module_id);
}
}
elseif ($type_graph === 'line') {
}
}
function graph_get_formatted_date($timestamp, $format1, $format2) {
@ -1124,7 +952,6 @@ function graphic_combined_module (
global $config;
global $graphic_type;
global $legend;
global $series_type;
$legend = array();
$caption = array();
@ -1149,11 +976,11 @@ function graphic_combined_module (
$average
$modules_series
*/
/*
html_debug_print($name_list);
html_debug_print($unit_list);
html_debug_print($from_interface);
*/
$date_array = array();
$date_array["period"] = $period;
$date_array["final_date"] = $date;
@ -1182,14 +1009,14 @@ html_debug_print($from_interface);
$show_elements_graph['pure'] = $pure;
$show_elements_graph['baseline'] = false; //dont use
$show_elements_graph['only_image'] = $only_image;
$show_elements_graph['return_data'] = true; //dont use
$show_elements_graph['return_data'] = false; //dont use
$show_elements_graph['id_widget'] = $id_widget_dashboard;
$show_elements_graph['labels'] = $labels;
$show_elements_graph['stacked'] = $stacked;
$format_graph = array();
$format_graph['width'] = $width . "px";
$format_graph['height'] = $height;
$format_graph['width'] = "90%";
$format_graph['height'] = "450";
$format_graph['type_graph'] = ''; //dont use
$format_graph['unit_name'] = $unit_name;
$format_graph['unit'] = ''; //dont use
@ -1292,11 +1119,6 @@ html_debug_print($from_interface);
$data_module_graph
);
series_type_graph_array(
$series_suffix,
$data_module_graph
);
if($config["fixed_graph"] == false){
$water_mark = array(
'file' => $config['homedir'] . "/images/logo_vertical_water.png",
@ -1310,6 +1132,10 @@ html_debug_print($from_interface);
$i++;
}
$series_type = series_type_graph_array(
$array_data
);
if ($flash_charts === false && $stacked == CUSTOM_GRAPH_GAUGE)
$stacked = CUSTOM_GRAPH_BULLET_CHART;
@ -1644,10 +1470,6 @@ html_debug_print($from_interface);
$module_name_list = array();
$collector = 0;
// Added to support projection graphs
if ($projection != false and $i != 0) {
$projection_data = array();
@ -1677,6 +1499,9 @@ html_debug_print($from_interface);
// $temp = array();
$graph_values = $temp;
//Set graph color
$threshold_data = array();
@ -1791,129 +1616,100 @@ html_debug_print($from_interface);
//summatory and average series
if($stacked == CUSTOM_GRAPH_AREA || $stacked == CUSTOM_GRAPH_LINE) {
//Fix pdf label
$static_pdf = strpos($module_name_list[0], '<span style');
if($summatory || $average) {
if(isset($array_data) && is_array($array_data)){
foreach ($array_data as $key => $value) {
if(strpos($key, 'sum') !== false){
$data_array_reverse[$key] = array_reverse($value['data']);
if(!$modules_series) {
unset($array_data[$key]);
unset($legend[$key]);
unset($series_type[$key]);
}
}
}
if($summatory && $average) {
foreach ($graph_values as $key => $value) {
$cont = count($value);
$summ = array_sum($value);
array_push($value,$summ);
array_push($value,$summ/$cont);
$graph_values[$key] = $value;
if(!$modules_series) {
array_splice($graph_values[$key],0,count($graph_values[$key])-2);
if(isset($data_array_reverse) && is_array($data_array_reverse)){
$array_sum_reverse = array();
$data_array_prev = false;
$data_array_pop = array();
$count = 0;
while(count($data_array_reverse['sum0']) > 0){
foreach ($data_array_reverse as $key_reverse => $value_reverse) {
if(is_array($value_reverse) && count($value_reverse) > 0){
$data_array_pop[$key_reverse] = array_pop($data_array_reverse[$key_reverse]);
}
}
if(isset($data_array_pop) && is_array($data_array_pop)){
$acum_data = 0;
$acum_array = array();
$sum_data = 0;
$count_pop = 0;
foreach ($data_array_pop as $key_pop => $value_pop) {
if( $value_pop[0] > $acum_data ){
if($acum_data != 0){
$sum_data = $sum_data + $data_array_prev[$key_pop][1];
$data_array_reverse[$key_pop][] = $value_pop;
$data_array_prev[$acum_key] = $acum_array;
}
else{
if($data_array_prev[$key_pop] == false){
$data_array_prev[$key_pop] = $value_pop;
}
$acum_key = $key_pop;
$acum_data = $value_pop[0];
$acum_array = $value_pop;
$sum_data = $value_pop[1];
}
}
elseif($value_pop[0] < $acum_data){
$sum_data = $sum_data + $data_array_prev[$key_pop][1];
$data_array_reverse[$acum_key][] = $acum_array;
$data_array_prev[$key_pop] = $value_pop;
$acum_key = $key_pop;
$acum_data = $value_pop[0];
$acum_array = $value_pop;
}
elseif($value_pop[0] == $acum_data){
$data_array_prev[$key_pop] = $value_pop;
$sum_data += $value_pop[1];
}
$count_pop++;
}
if($summatory){
$array_sum_reverse[$count][0] = $acum_data;
$array_sum_reverse[$count][1] = $sum_data;
}
if($average){
$array_avg_reverse[$count][0] = $acum_data;
$array_avg_reverse[$count][1] = $sum_data / $count_pop;
}
}
$count++;
}
}
}
if(!$modules_series) {
if(empty($percentil)) {
array_splice($module_name_list,0,count($module_name_list));
} else {
array_splice($module_name_list,0,count($module_name_list)-(count($module_name_list)/2));
}
if($static_pdf === 0) {
array_unshift($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
array_unshift($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
} else {
array_unshift($module_name_list, __('summatory'));
array_unshift($module_name_list, __('average'));
}
} else {
if(empty($percentil)) {
if($static_pdf === 0) {
array_push($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
array_push($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
} else {
array_push($module_name_list, __('summatory'));
array_push($module_name_list, __('average'));
}
} else {
if($static_pdf === 0) {
array_splice($module_name_list,(count($module_name_list)/2),0,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
array_splice($module_name_list,(count($module_name_list)/2),0,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
} else {
array_splice($module_name_list,(count($module_name_list)/2),0, __('average'));
array_splice($module_name_list,(count($module_name_list)/2),0,__('summatory'));
}
}
}
} elseif($summatory) {
foreach ($graph_values as $key => $value) {
array_push($value,array_sum($value));
$graph_values[$key] = $value;
if(!$modules_series){
array_splice($graph_values[$key],0,count($graph_values[$key])-1);
}
//XXXXX color,type,title, opacity
if(isset($array_sum_reverse) && is_array($array_sum_reverse)){
$array_data['sumatory']['data'] = $array_sum_reverse;
$array_data['sumatory']['color'] = 'purple';
$legend['sumatory'] = __('Summatory');
$series_type['sumatory'] = 'area';
}
if(!$modules_series) {
if(empty($percentil)) {
array_splice($module_name_list,0,count($module_name_list));
} else {
array_splice($module_name_list,0,count($module_name_list)-(count($module_name_list)/2));
}
if($static_pdf === 0) {
array_unshift($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
} else {
array_unshift($module_name_list, __('summatory'));
}
} else {
if(empty($percentil)) {
if($static_pdf === 0) {
array_push($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
} else {
array_push($module_name_list,__('summatory'));
}
} else {
if($static_pdf === 0) {
array_splice($module_name_list,(count($module_name_list)/2),0,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
} else {
array_splice($module_name_list,(count($module_name_list)/2),0,__('summatory'));
}
}
}
} elseif($average) {
foreach ($graph_values as $key => $value) {
$summ = array_sum($value) / count($value);
array_push($value,$summ);
$graph_values[$key] = $value;
if(!$modules_series){
array_splice($graph_values[$key],0,count($graph_values[$key])-1);
}
}
if(!$modules_series) {
if(empty($percentil)) {
array_splice($module_name_list,0,count($module_name_list));
} else {
array_splice($module_name_list,0,count($module_name_list)-(count($module_name_list)/2));
}
if($static_pdf === 0) {
array_unshift($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
} else {
array_unshift($module_name_list,__('average'));
}
} else {
if(empty($percentil)) {
if($static_pdf === 0) {
array_push($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
} else {
array_push($module_name_list,__('average'));
}
} else {
if($static_pdf === 0) {
array_splice($module_name_list,(count($module_name_list)/2),0,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
} else {
array_splice($module_name_list,(count($module_name_list)/2),0,__('average'));
}
}
if(isset($array_avg_reverse) && is_array($array_avg_reverse)){
$array_data['sum_avg']['data'] = $array_avg_reverse;
$array_data['sum_avg']['color'] = 'orange';
$legend['sum_avg'] = __('AVG');
$series_type['sum_avg'] = 'area';
}
}
}
$graph_values = $temp;
switch ($stacked) {
default:
case CUSTOM_GRAPH_STACKED_LINE:
@ -1963,6 +1759,108 @@ html_debug_print($from_interface);
}
}
function combined_graph_summatory_average ($array_data){
if(isset($array_data) && is_array($array_data)){
foreach ($array_data as $key => $value) {
if(strpos($key, 'sum') !== false){
$data_array_reverse[$key] = array_reverse($value['data']);
/*
if(!$modules_series) {
unset($array_data[$key]);
unset($legend[$key]);
unset($series_type[$key]);
}
*/
}
}
if(isset($data_array_reverse) && is_array($data_array_reverse)){
$array_sum_reverse = array();
$array_avg_reverse = array();
$data_array_prev = false;
$data_array_pop = array();
$count = 0;
while(count($data_array_reverse['sum0']) > 0){
foreach ($data_array_reverse as $key_reverse => $value_reverse) {
if(is_array($value_reverse) && count($value_reverse) > 0){
$data_array_pop[$key_reverse] = array_pop($data_array_reverse[$key_reverse]);
}
}
if(isset($data_array_pop) && is_array($data_array_pop)){
$acum_data = 0;
$acum_array = array();
$sum_data = 0;
$count_pop = 0;
foreach ($data_array_pop as $key_pop => $value_pop) {
if( $value_pop[0] > $acum_data ){
if($acum_data != 0){
$sum_data = $sum_data + $data_array_prev[$key_pop][1];
$data_array_reverse[$key_pop][] = $value_pop;
$data_array_prev[$acum_key] = $acum_array;
}
else{
if($data_array_prev[$key_pop] == false){
$data_array_prev[$key_pop] = $value_pop;
}
$acum_key = $key_pop;
$acum_data = $value_pop[0];
$acum_array = $value_pop;
$sum_data = $value_pop[1];
}
}
elseif($value_pop[0] < $acum_data){
$sum_data = $sum_data + $data_array_prev[$key_pop][1];
$data_array_reverse[$acum_key][] = $acum_array;
$data_array_prev[$key_pop] = $value_pop;
$acum_key = $key_pop;
$acum_data = $value_pop[0];
$acum_array = $value_pop;
}
elseif($value_pop[0] == $acum_data){
$data_array_prev[$key_pop] = $value_pop;
$sum_data += $value_pop[1];
}
$count_pop++;
}
// if($summatory){
// $array_sum_reverse[$count][0] = $acum_data;
// $array_sum_reverse[$count][1] = $sum_data;
// }
// if($average){
$array_avg_reverse[$count][0] = $acum_data;
$array_avg_reverse[$count][1] = $sum_data / $count_pop;
// }
}
$count++;
}
}
return $array_avg_reverse;
}
else{
return false;
}
}
/**
* Print a graph with access data of agents
*

View File

@ -3479,75 +3479,108 @@ function reporting_simple_baseline_graph($report, $content,
$force_height_chart = null) {
global $config;
if ($config['metaconsole']) {
$id_meta = metaconsole_get_id_server($content["server_name"]);
$server = metaconsole_get_connection_by_id ($id_meta);
metaconsole_connect($server);
}
$return['type'] = 'simple_baseline_graph';
if (empty($content['name'])) {
$content['name'] = __('Simple baseline graph');
}
$module_name = io_safe_output(
modules_get_agentmodule_name($content['id_agent_module']));
$agent_name = io_safe_output(
modules_get_agentmodule_agent_alias ($content['id_agent_module']));
$return['title'] = $content['name'];
$return['subtitle'] = $agent_name . " - " . $module_name;
$return["description"] = $content["description"];
$return["date"] = reporting_get_date_text($report, $content);
$return['label'] = (isset($content['style']['label'])) ? $content['style']['label'] : '';
// Get chart
reporting_set_conf_charts($width, $height, $only_image, $type,
$content, $ttl);
if (!empty($force_width_chart)) {
$width = $force_width_chart;
}
if (!empty($force_height_chart)) {
$height = $force_height_chart;
}
//XXXXXXXX
$width = '90%';
$height = 300;
$baseline_data = enterprise_hook(
'reporting_enterprise_get_baseline',
array (
$content['id_agent_module'],
$content['period'],
$report["datetime"]
)
);
if ($baseline_data === ENTERPRISE_NOT_HOOK) {
$baseline_data = array ();
}
switch ($type) {
case 'dinamic':
case 'static':
$return['chart'] = grafico_modulo_sparse(
$return['chart'] = grafico_modulo_sparse (
$content['id_agent_module'],
$content['period'],
false,
$width,
$height,
'',
'',
null,
false,
0,
false,
true,
true,
$report["datetime"],
'',
true,
0,
0,
true,
$only_image,
ui_get_full_url(false, false, false, false),
$ttl);
$ttl,
false,
'',
false,
false,
true,
'white',
null,
false,
false,
'area',
false,
false,
0,
300,
0,
0,
$baseline_data
);
break;
case 'data':
break;
}
if ($config['metaconsole']) {
metaconsole_restore_db();
}
return reporting_check_structure_content($return);
}

View File

@ -230,7 +230,6 @@ function area_graph(
global $config;
include_once('functions_flot.php');
if ($config['flash_charts']) {
return flot_area_graph(
$agent_module_id,

View File

@ -1558,28 +1558,33 @@ function pandoraFlotArea(
break;
}
data_base.push({
id: 'serie_' + i,
data: value.data,
label: index + series_suffix_str,
color: value.color,
lines: {
show: line_show,
fill: filled,
lineWidth: lineWidth,
steps: steps_chart
},
points: {
show: points_show,
radius: 3,
fillColor: fill_points
}
});
i++;
//in graph stacked unset percentil
if( ! ( (type == 1) && ( /percentil/.test(index) ) == true ) &&
! ( (type == 3) && ( /percentil/.test(index) ) == true ) ){
data_base.push({
id: 'serie_' + i,
data: value.data,
label: index + series_suffix_str,
color: value.color,
lines: {
show: line_show,
fill: filled,
lineWidth: lineWidth,
steps: steps_chart
},
points: {
show: points_show,
radius: 3,
fillColor: fill_points
}
});
}
}
i++;
});
console.log(data_base);
// The first execution, the graph data is the base data
datas = data_base;
font_size = 8;
@ -2120,6 +2125,7 @@ function pandoraFlotArea(
}
// Get only two decimals
//XXXXXXXXXX
formatted = round_with_decimals(formatted, 100)
return '<div class='+font+' style="font-size:'+font_size+'pt;">'+formatted+'</div>';
}

View File

@ -505,4 +505,4 @@ ui_include_time_picker(true);
$(window).resize(function() {
$("#field_list").css('height', ($(window).height() - 160) + 'px');
});
</script>
</script>