diff --git a/pandora_console/godmode/reporting/graph_builder.main.php b/pandora_console/godmode/reporting/graph_builder.main.php
index 9c95f2263b..53f8d47835 100644
--- a/pandora_console/godmode/reporting/graph_builder.main.php
+++ b/pandora_console/godmode/reporting/graph_builder.main.php
@@ -66,6 +66,8 @@ if ($edit_graph) {
$height = $graphInTgraph['height'];
$check = false;
$percentil = $graphInTgraph['percentil'];
+ $summatory_series = $graphInTgraph['summatory_series'];
+ $average_series = $graphInTgraph['average_series'];
if ($stacked == CUSTOM_GRAPH_BULLET_CHART_THRESHOLD){
$stacked = CUSTOM_GRAPH_BULLET_CHART;
@@ -84,6 +86,8 @@ else {
$stacked = 4;
$check = false;
$percentil = 0;
+ $summatory_series = 0;
+ $average_series = 0;
}
@@ -174,6 +178,15 @@ echo "";
echo "";
+echo "
".__('Add summatory series')."" .
+ ui_print_help_tip (__("This will add a synthetic series to the graph,
+ using all series to give a SUM or an average of all present series values
+ in each interval. This feature could be used instead synthetic modules
+ if you only want to see a graph"), true)." | ";
+echo "" . html_print_checkbox ("summatory_series", 1, $summatory_series, true) . " |
+".__('Add average series')." | ";
+echo "" . html_print_checkbox ("average_series", 1, $average_series, true) . " |
";
+
echo "".__('Percentil')." | ";
echo "" . html_print_checkbox ("percentil", 1, $percentil, true) . " |
";
diff --git a/pandora_console/godmode/reporting/graph_builder.php b/pandora_console/godmode/reporting/graph_builder.php
index 317f562e6f..0d4cdcc2f9 100644
--- a/pandora_console/godmode/reporting/graph_builder.php
+++ b/pandora_console/godmode/reporting/graph_builder.php
@@ -87,6 +87,8 @@ if ($add_graph) {
$period = get_parameter_post ("period");
$threshold = get_parameter('threshold');
$percentil = get_parameter ("percentil", 0);
+ $summatory_series = get_parameter ("summatory_series", 0);
+ $average_series = get_parameter ("average_series", 0);
if ($threshold == CUSTOM_GRAPH_BULLET_CHART_THRESHOLD){
$stacked = $threshold;
@@ -103,7 +105,9 @@ if ($add_graph) {
'private' => 0,
'id_group' => $idGroup,
'stacked' => $stacked,
- 'percentil' => $percentil
+ 'percentil' => $percentil,
+ 'summatory_series' => $summatory_series,
+ 'average_series' => $average_series
);
if (trim($name) != "") {
@@ -131,6 +135,8 @@ if ($update_graph) {
$period = get_parameter('period');
$stacked = get_parameter('stacked');
$percentil = get_parameter('percentil');
+ $summatory_series = get_parameter ("summatory_series");
+ $average_series = get_parameter ("average_series");
$alerts = get_parameter('alerts');
$threshold = get_parameter('threshold');
@@ -141,7 +147,9 @@ if ($update_graph) {
if (trim($name) != "") {
$success = db_process_sql_update('tgraph',
- array('name' => $name, 'id_group' => $id_group, 'description' => $description, 'width' => $width, 'height' => $height, 'period' => $period, 'stacked' => $stacked, 'percentil' => $percentil ),
+ array('name' => $name, 'id_group' => $id_group, 'description' => $description,
+ 'width' => $width, 'height' => $height, 'period' => $period, 'stacked' => $stacked,
+ 'percentil' => $percentil, 'summatory_series' => $summatory_series, 'average_series' => $average_series),
array('id_graph' => $id_graph));
if ($success !== false)
db_pandora_audit("Report management", "Update graph #$id_graph");
diff --git a/pandora_console/include/functions_custom_graphs.php b/pandora_console/include/functions_custom_graphs.php
index adf077ec6a..f61a7ee944 100644
--- a/pandora_console/include/functions_custom_graphs.php
+++ b/pandora_console/include/functions_custom_graphs.php
@@ -202,6 +202,10 @@ function custom_graphs_print($id_graph, $height, $width, $period,
$sources = db_get_all_rows_field_filter('tgraph_source', 'id_graph',
$id_graph);
+ $series = db_get_all_rows_sql('SELECT summatory_series,average_series FROM tgraph WHERE id_graph = '.$id_graph);
+ $summatory = $series[0]['summatory_series'];
+ $average = $series[0]['average_series'];
+
$modules = array ();
$weights = array ();
$labels = array ();
@@ -262,7 +266,9 @@ function custom_graphs_print($id_graph, $height, $width, $period,
$percentil,
$from_interface,
$id_widget_dashboard,
- $fullscale);
+ $fullscale,
+ $summatory,
+ $average);
if ($return)
return $output;
diff --git a/pandora_console/include/functions_graph.php b/pandora_console/include/functions_graph.php
index 88e67981e0..b17bd224e5 100644
--- a/pandora_console/include/functions_graph.php
+++ b/pandora_console/include/functions_graph.php
@@ -1114,11 +1114,11 @@ function graphic_combined_module ($module_list, $weight_list, $period,
$name_list = array(), $unit_list = array(), $show_last = true, $show_max = true,
$show_min = true, $show_avg = true, $labels = array(), $dashboard = false,
$vconsole = false, $percentil = null, $from_interface = false,
- $id_widget_dashboard=false, $fullscale = false) {
+ $id_widget_dashboard=false, $fullscale = false, $summatory = 0, $average = 0) {
global $config;
global $graphic_type;
-
+
if(!$fullscale){
$time_format_2 = '';
$temp_range = $period;
@@ -1205,7 +1205,8 @@ function graphic_combined_module ($module_list, $weight_list, $period,
$weight_list[$i] = 1;
}
}
-
+
+ $aux_array = array();
// Set data containers
for ($i = 0; $i < $resolution; $i++) {
$timestamp = $datelimit + ($interval * $i);/*
@@ -1257,12 +1258,12 @@ function graphic_combined_module ($module_list, $weight_list, $period,
// If its a projection graph,
// first module will be data and second will be the projection
+
if ($projection != false && $i != 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);
@@ -1273,7 +1274,6 @@ function graphic_combined_module ($module_list, $weight_list, $period,
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);
$uncompressed_module = is_module_uncompressed ($module_type);
@@ -1346,6 +1346,21 @@ function graphic_combined_module ($module_list, $weight_list, $period,
continue;
}
+ // if(empty($aux_array)){
+ // foreach ($data as $key => $value) {
+ // $aux_array[$value['utimestamp']] = $value['datos'];
+ // }
+ // } else {
+ // foreach ($data as $key => $value) {
+ // if(array_key_exists($value['utimestamp'],$aux_array)){
+ // $aux_array[$value['utimestamp']] = $aux_array[$value['utimestamp']] + $value['datos'];
+ // } else {
+ // $aux_array[$value['utimestamp']] = $value['datos'];
+ // }
+ // }
+ // }
+
+ // html_debug($aux_array);
if (!empty($name_list) && $names_number == $module_number && isset($name_list[$i])) {
if ($labels[$agent_module_id] != '')
$module_name_list[$i] = $labels[$agent_module_id];
@@ -2114,7 +2129,37 @@ function graphic_combined_module ($module_list, $weight_list, $period,
$threshold_data['red_inverse'] = (bool)$red_inverse;
}
}
-
+
+ //summatory and average series
+ if($stacked == CUSTOM_GRAPH_AREA || $stacked == CUSTOM_GRAPH_LINE) {
+ 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;
+ }
+ array_push($module_name_list,'' . __('summatory'). '');
+ array_push($module_name_list,'' . __('average'). '');
+
+ } elseif($summatory) {
+ foreach ($graph_values as $key => $value) {
+ array_push($value,array_sum($value));
+ $graph_values[$key] = $value;
+ }
+ array_push($module_name_list,'' . __('summatory'). '');
+
+ } elseif($average) {
+ foreach ($graph_values as $key => $value) {
+ $summ = array_sum($value) / count($value);
+ array_push($value,$summ);
+ $graph_values[$key] = $value;
+ }
+ array_push($module_name_list,'' . __('average'). '');
+ }
+ }
+
switch ($stacked) {
case CUSTOM_GRAPH_AREA:
return area_graph($flash_charts, $graph_values, $width,
diff --git a/pandora_console/include/graphs/functions_flot.php b/pandora_console/include/graphs/functions_flot.php
index 75569c5922..54259ba6b0 100644
--- a/pandora_console/include/graphs/functions_flot.php
+++ b/pandora_console/include/graphs/functions_flot.php
@@ -185,7 +185,7 @@ function flot_area_graph($chart_data, $width, $height, $color, $legend,
include_javascript_dependencies_flot_graph();
$menu = (int)$menu;
-
+ html_debug($legend);
// Get a unique identifier to graph
$graph_id = uniqid('graph_');
@@ -500,6 +500,7 @@ function flot_area_graph($chart_data, $width, $height, $color, $legend,
$short_data = false;
}
+
// Javascript code
$return .= "