Merge branch '1463-Series-sintéticas-dev' into 'develop'

1463 series sintéticas dev

See merge request artica/pandorafms!1175
This commit is contained in:
vgilc 2017-12-13 12:05:43 +01:00
commit 7362f45ef8
9 changed files with 174 additions and 10 deletions

View File

@ -4,4 +4,8 @@ ALTER TABLE tsnmp_filter ADD unified_filters_id int(10) NOT NULL DEFAULT 0;
ALTER TABLE treport_content_template ADD COLUMN hide_no_data tinyint(1) DEFAULT 0;
ALTER TABLE tgraph_source ADD COLUMN `order` int(10) NOT NULL default 0;
ALTER TABLE tgraph ADD COLUMN `summatory_series` tinyint(1) UNSIGNED NOT NULL default '0';
ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0';
ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0';
COMMIT;

View File

@ -1263,6 +1263,7 @@ UPDATE tagente_modulo SET cron_interval = '' WHERE cron_interval LIKE '% %';
ALTER TABLE tgraph ADD COLUMN `percentil` int(4) unsigned default '0';
ALTER TABLE tgraph ADD COLUMN `summatory_series` tinyint(1) UNSIGNED NOT NULL default '0';
ALTER TABLE tgraph ADD COLUMN `average_series` tinyint(1) UNSIGNED NOT NULL default '0';
ALTER TABLE tgraph ADD COLUMN `modules_series` tinyint(1) UNSIGNED NOT NULL default '0';
-- ---------------------------------------------------------------------
-- Table `tnetflow_filter`

View File

@ -66,6 +66,9 @@ if ($edit_graph) {
$height = $graphInTgraph['height'];
$check = false;
$percentil = $graphInTgraph['percentil'];
$summatory_series = $graphInTgraph['summatory_series'];
$average_series = $graphInTgraph['average_series'];
$modules_series = $graphInTgraph['modules_series'];
if ($stacked == CUSTOM_GRAPH_BULLET_CHART_THRESHOLD){
$stacked = CUSTOM_GRAPH_BULLET_CHART;
@ -84,6 +87,9 @@ else {
$stacked = 4;
$check = false;
$percentil = 0;
$summatory_series = 0;
$average_series = 0;
$modules_series = 0;
}
@ -177,6 +183,16 @@ echo "</div></td>";
echo "<tr><td class='datos2'><b>".__('Percentil')."</b></td>";
echo "<td class='datos2'>" . html_print_checkbox ("percentil", 1, $percentil, true) . "</td></tr>";
echo "<tr><td class='datos2'><b>".__('Add summatory series') .
ui_print_help_tip (__("Adds synthetic series to the graph, using all module
values to calculate the summation and/or average in each time interval.
This feature could be used instead of synthetic modules if you only want to see a graph."), true) . "</b></td>";
echo "<td class='datos2'>" . html_print_checkbox ("summatory_series", 1, $summatory_series, true) . "</td>
<td class='datos2'><b>".__('Add average series')."</b></td>";
echo "<td class='datos2'>" . html_print_checkbox ("average_series", 1, $average_series, true) . "</td></tr>";
echo "<tr><td class='datos2'><b>".__('Modules and series')."</b></td>";
echo "<td class='datos2'>" . html_print_checkbox ("modules_series", 1, $modules_series, true) . "</td></tr>";
echo "</table>";
if ($edit_graph) {
@ -195,6 +211,12 @@ echo '<script type="text/javascript">
}else{
$("#thresholdDiv").hide();
}
if(!$("#checkbox-summatory_series").is(":checked") && !$("#checkbox-average_series").is(":checked")){
$("#checkbox-modules_series").attr("disabled", true);
$("#checkbox-modules_series").attr("checked", false);
}
});
$("#stacked").change(function(){
@ -214,6 +236,24 @@ echo '<script type="text/javascript">
$("#thresholdDiv").hide();
}
});
$("#checkbox-summatory_series").change(function() {
if($("#checkbox-summatory_series").is(":checked") && $("#checkbox-modules_series").is(":disabled")) {
$("#checkbox-modules_series").removeAttr("disabled");
} else if(!$("#checkbox-average_series").is(":checked")) {
$("#checkbox-modules_series").attr("disabled", true);
$("#checkbox-modules_series").attr("checked", false);
}
});
$("#checkbox-average_series").change(function() {
if($("#checkbox-average_series").is(":checked") && $("#checkbox-modules_series").is(":disabled")) {
$("#checkbox-modules_series").removeAttr("disabled");
} else if(!$("#checkbox-summatory_series").is(":checked")) {
$("#checkbox-modules_series").attr("disabled", true);
$("#checkbox-modules_series").attr("checked", false);
}
});
</script>';
?>

View File

@ -87,6 +87,9 @@ 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);
$modules_series = get_parameter ("modules_series", 0);
if ($threshold == CUSTOM_GRAPH_BULLET_CHART_THRESHOLD){
$stacked = $threshold;
@ -103,7 +106,10 @@ if ($add_graph) {
'private' => 0,
'id_group' => $idGroup,
'stacked' => $stacked,
'percentil' => $percentil
'percentil' => $percentil,
'summatory_series' => $summatory_series,
'average_series' => $average_series,
'modules_series' => $modules_series
);
if (trim($name) != "") {
@ -131,6 +137,9 @@ 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");
$modules_series = get_parameter ("modules_series");
$alerts = get_parameter('alerts');
$threshold = get_parameter('threshold');
@ -141,7 +150,10 @@ 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, 'modules_series' => $modules_series),
array('id_graph' => $id_graph));
if ($success !== false)
db_pandora_audit("Report management", "Update graph #$id_graph");

View File

@ -60,7 +60,6 @@ if ($update_snmp_translation) {
if ($delete_snmp_filter) {
$filter_id = get_parameter('filter_id');
html_debug($filter_id, true);
db_process_sql_delete('tsnmp_filter', array('id_snmp_filter' => $filter_id));
return;

View File

@ -202,6 +202,11 @@ 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,modules_series FROM tgraph WHERE id_graph = '.$id_graph);
$summatory = $series[0]['summatory_series'];
$average = $series[0]['average_series'];
$modules_series = $series[0]['modules_series'];
$modules = array ();
$weights = array ();
$labels = array ();
@ -262,7 +267,10 @@ function custom_graphs_print($id_graph, $height, $width, $period,
$percentil,
$from_interface,
$id_widget_dashboard,
$fullscale);
$fullscale,
$summatory,
$average,
$modules_series);
if ($return)
return $output;

View File

@ -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, $modules_series = 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,91 @@ 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;
if(!$modules_series) {
array_splice($graph_values[$key],0,count($graph_values[$key])-2);
}
}
if(!$modules_series) {
if(is_null($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));
}
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 {
if(is_null($percentil)) {
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_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>');
}
}
} 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);
}
}
if(!$modules_series) {
if(is_null($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));
}
array_unshift($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
} else {
if(is_null($percentil)) {
array_push($module_name_list,'<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,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('summatory'). '</span>');
}
}
} 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(is_null($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));
}
array_unshift($module_name_list,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
} else {
if(is_null($percentil)) {
array_push($module_name_list,'<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,'<span style=\"font-size:' . ($config['font_size']) . 'pt;font-family: smallfontFont;\" >' . __('average'). '</span>');
}
}
}
}
switch ($stacked) {
case CUSTOM_GRAPH_AREA:
return area_graph($flash_charts, $graph_values, $width,

View File

@ -185,7 +185,6 @@ function flot_area_graph($chart_data, $width, $height, $color, $legend,
include_javascript_dependencies_flot_graph();
$menu = (int)$menu;
// Get a unique identifier to graph
$graph_id = uniqid('graph_');
@ -500,6 +499,7 @@ function flot_area_graph($chart_data, $width, $height, $color, $legend,
$short_data = false;
}
// Javascript code
$return .= "<script type='text/javascript'>";
$return .= "$(document).ready( function () {";

View File

@ -1192,6 +1192,7 @@ CREATE TABLE IF NOT EXISTS `tgraph` (
`percentil` tinyint(1) UNSIGNED NOT NULL default 0,
`summatory_series` tinyint(1) UNSIGNED NOT NULL default 0,
`average_series` tinyint(1) UNSIGNED NOT NULL default 0,
`modules_series` tinyint(1) UNSIGNED NOT NULL default 0,
PRIMARY KEY(`id_graph`)
) ENGINE = InnoDB DEFAULT CHARSET=utf8;