reconfigure charts

This commit is contained in:
daniel 2018-02-08 15:47:12 +01:00
parent 63e5d23288
commit af9e11ffca
3 changed files with 124 additions and 41 deletions

View File

@ -777,6 +777,7 @@ function db_uncompress_module_data($id_agente_modulo, $tstart = false, $tend = f
$tmp_data["datos"] = $last_inserted_value; $tmp_data["datos"] = $last_inserted_value;
// debug purpose // debug purpose
//$tmp_data["obs"] = "virtual data (raw)"; //$tmp_data["obs"] = "virtual data (raw)";
$tmp_data["type"] = ($current_timestamp == $tstart || ($current_timestamp == $tend)?0:1); // virtual data
//Add order to avoid usort missorder in same utimestamp data cells //Add order to avoid usort missorder in same utimestamp data cells
$tmp_data["order"] = 1; $tmp_data["order"] = 1;
@ -785,6 +786,7 @@ function db_uncompress_module_data($id_agente_modulo, $tstart = false, $tend = f
$tmp_data["utimestamp"] = $current_raw_data["utimestamp"]; $tmp_data["utimestamp"] = $current_raw_data["utimestamp"];
$tmp_data["datos"] = $current_raw_data["datos"]; $tmp_data["datos"] = $current_raw_data["datos"];
$tmp_data["type"] = 0; // real data
// debug purpose // debug purpose
//$tmp_data["obs"] = "real data"; //$tmp_data["obs"] = "real data";
//Add order to avoid usort missorder in same utimestamp data cells //Add order to avoid usort missorder in same utimestamp data cells
@ -883,7 +885,7 @@ function db_uncompress_module_data($id_agente_modulo, $tstart = false, $tend = f
if (count($return[$pool_id]['data']) == 0) { if (count($return[$pool_id]['data']) == 0) {
//insert first slice data //insert first slice data
$tmp_data["utimestamp"] = $current_timestamp; $tmp_data["utimestamp"] = $current_timestamp;
$tmp_data["datos"] = $last_inserted_value; $tmp_data["datos"] = $last_inserted_value;
// debug purpose // debug purpose
//$tmp_data["obs"] = "virtual data (empty)"; //$tmp_data["obs"] = "virtual data (empty)";
array_push($return[$pool_id]["data"], $tmp_data); array_push($return[$pool_id]["data"], $tmp_data);

View File

@ -916,12 +916,74 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
$id_widget_dashboard = false,$force_interval = 0,$time_interval = 300, $id_widget_dashboard = false,$force_interval = 0,$time_interval = 300,
$max_only = 0, $min_only = 0) { $max_only = 0, $min_only = 0) {
global $config; global $config;
global $graphic_type; global $graphic_type;
$flash_chart = $config['flash_charts']; $flash_chart = $config['flash_charts'];
//XXX aqui empieza la obtencion de datos:
//Es infernal la cantidad de parametros que se le mandan pasamos a un array para simplificar este proceso:
//date start final period
$date_array = array();
$date_array["start_date"] = $date - $period;
$date_array["final_date"] = $date;
$date_array["period"] = $period;
//show elements in the graph
$show_elements_graph = array();
$show_elements_graph['show_events'] = $show_events;
$show_elements_graph['show_alerts'] = $show_alerts;
$show_elements_graph['show_unknown'] = $show_unknown;
$show_elements_graph['avg_only'] = $avg_only;
$show_elements_graph['show_title'] = $show_title;
$show_elements_graph['menu'] = $menu;
$show_elements_graph['percentil'] = $percentil;
$show_elements_graph['projection'] = $projection;
$show_elements_graph['adapt_key'] = $adapt_key;
$show_elements_graph['compare'] = $compare;
$show_elements_graph['dashboard'] = $dashboard;
$show_elements_graph['vconsole'] = $vconsole;
$show_elements_graph['pure'] = $pure;
$show_elements_graph['baseline'] = $baseline;
$show_elements_graph['only_image'] = $only_image;
$show_elements_graph['return_data'] = $return_data;
$show_elements_graph['id_widget'] = $id_widget_dashboard;
//format of the graph
$format_graph = array();
$format_graph['width'] = $width;
$format_graph['height'] = $height;
$format_graph['type_graph'] = $type_graph;
$format_graph['fullscale'] = $fullscale;
$format_graph['unit_name'] = $unit_name;
$format_graph['unit'] = $unit;
$format_graph['title'] = $title;
$format_graph['homeurl'] = $homeurl;
$format_graph['ttl'] = $ttl;
$format_graph['background'] = $backgroundColor;
//exception to change the interval of the graph and show media min max @enriquecd
$exception_interval_graph['force_interval'] = $force_interval;
$exception_interval_graph['time_interval'] = $time_interval;
$exception_interval_graph['max_only'] = $max_only;
$exception_interval_graph['min_only'] = $min_only;
/*
html_debug_print('+++++++++++++++++Parámetros Que recibe la funcion++++++++++++++++++++++');
html_debug_print('id_agente_modulo: ' . $agent_module_id);
html_debug_print($date_array);
html_debug_print($show_elements_graph);
html_debug_print($format_graph);
html_debug_print($exception_interval_graph);
html_debug_print('+++++++++++++FIN Parámetros Que recibe la funcion++++++++++++++++++++++');
*/
enterprise_include_once("include/functions_reporting.php"); enterprise_include_once("include/functions_reporting.php");
global $chart; global $chart;
@ -960,7 +1022,7 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
case 'overlapped': case 'overlapped':
// Store the chart calculated deleting index, // Store the chart calculated deleting index,
// because will be over the current period // because will be over the current period
$chart_prev = array_values($chart); $chart_prev = $chart;
$legend_prev = $legend; $legend_prev = $legend;
$series_type_prev = $series_type; $series_type_prev = $series_type;
$color_prev = $color; $color_prev = $color;
@ -986,6 +1048,7 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
return $data_returned; return $data_returned;
} }
if ($compare === 'overlapped') { if ($compare === 'overlapped') {
/*
$i = 0; $i = 0;
foreach ($chart as $k=>$v) { foreach ($chart as $k=>$v) {
if (!isset($chart_prev[$i])) { if (!isset($chart_prev[$i])) {
@ -994,7 +1057,23 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
$chart[$k] = array_merge($v,$chart_prev[$i]); $chart[$k] = array_merge($v,$chart_prev[$i]);
$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);
//html_debug_print($chart);
$legend = array_merge($legend, $legend_prev); $legend = array_merge($legend, $legend_prev);
$color = array_merge($color, $color_prev); $color = array_merge($color, $color_prev);
} }
@ -4592,6 +4671,7 @@ function fullscale_data ( &$chart_data, &$chart_extra_data, &$long_index,
$data_uncompress = db_uncompress_module_data($agent_module_id, $datelimit, $date); $data_uncompress = db_uncompress_module_data($agent_module_id, $datelimit, $date);
$chart_data = array(); $chart_data = array();
$flag_unknown = 0;
$min_value = PHP_INT_MAX-1; $min_value = PHP_INT_MAX-1;
$max_value = PHP_INT_MIN+1; $max_value = PHP_INT_MIN+1;
@ -4600,10 +4680,13 @@ function fullscale_data ( &$chart_data, &$chart_extra_data, &$long_index,
$i=0; $i=0;
$current_event = $events[0]; $current_event = $events[0];
$prueba = array();
foreach ($data_uncompress as $k) { foreach ($data_uncompress as $k) {
foreach ($k["data"] as $v) { foreach ($k["data"] as $v) {
$real_date = date("Y M d H:i:s", $v['utimestamp']); if (isset($v["type"]) && $v["type"] == 1) { # skip unnecesary virtual data
continue;
}
$real_date = $v['utimestamp'];
if(!$flash_chart){ if(!$flash_chart){
$real_date = date("Y/M/d", $v['utimestamp']); $real_date = date("Y/M/d", $v['utimestamp']);
@ -4614,7 +4697,7 @@ function fullscale_data ( &$chart_data, &$chart_extra_data, &$long_index,
$event_ids = array(); $event_ids = array();
$alert_ids = array(); $alert_ids = array();
while (isset($current_event) && ($v['utimestamp'] >= $current_event["utimestamp"]) ) { while (isset($current_event) && ($v['utimestamp'] >= $current_event["utimestamp"]) ) {
$event_date = date("Y M d H:i:s", $current_event['utimestamp']); $event_date = $current_event['utimestamp'];
if(!$flash_chart){ if(!$flash_chart){
$event_date = date("Y/M/d", $current_event['utimestamp']); $event_date = date("Y/M/d", $current_event['utimestamp']);
$event_date .= "\n"; $event_date .= "\n";
@ -4717,11 +4800,16 @@ function fullscale_data ( &$chart_data, &$chart_extra_data, &$long_index,
$previous_unknown = NULL; $previous_unknown = NULL;
} }
} }
$last_data = $v["datos"];
} }
} }
$series_type['event'.$series_suffix] = 'points'; $series_type['event'.$series_suffix] = 'points';
$series_type['alert'.$series_suffix] = 'points'; $series_type['alert'.$series_suffix] = 'points';
$series_type['unknown'.$series_suffix] = 'unknown'; $series_type['unknown'.$series_suffix] = 'unknown';
// Add missed last data
$chart_data[$date]["sum" . $series_suffix] = $last_data;
if($boolean_graph){ if($boolean_graph){
$series_type['sum'.$series_suffix] = 'boolean'; $series_type['sum'.$series_suffix] = 'boolean';
} }

View File

@ -880,7 +880,7 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend,
//XXX 1827 //XXX 1827
//Translate datetime to utimestamp -> avoid convert datetime in server better... //Translate datetime to utimestamp -> avoid convert datetime in server better...
$.each(labels, function (i,v) { $.each(labels, function (i,v) {
labels[i] = new Date(labels[i]).getTime(); labels[i] = labels[i] * 1000;
}); });
legend = legend.split(separator); legend = legend.split(separator);
@ -949,8 +949,8 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend,
switch (serie_types[i]) { switch (serie_types[i]) {
case 'area': case 'area':
line_show = true; line_show = true;
points_show = false; points_show = false; // XXX - false
filled = true; filled = 0.2;
steps_chart = false; steps_chart = false;
break; break;
case 'line': case 'line':
@ -990,19 +990,6 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend,
var warning = '#ff0'; var warning = '#ff0';
var critical = '#f00'; var critical = '#f00';
// setup background areas
//vnormal_max = vwarning_min - 1;
var markings = null;
// Fill the grid background with weak threshold colors
//~ markings = [
//~ { color: normalw, yaxis: { from: -1,to: vnormal_max } },
//~ { color: warningw, yaxis: { from: vwarning_min, to: vwarning_max } },
//~ { color: criticalw, yaxis: { from: vcritical_min } },
//~ { color: criticalw, yaxis: { to: -1 } }
//~ ];
var lineWidth = $('#hidden-line_width_graph').val() || 1; var lineWidth = $('#hidden-line_width_graph').val() || 1;
// Data // Data
@ -1015,9 +1002,6 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend,
lines: { lines: {
show: line_show, show: line_show,
fill: filled, fill: filled,
fillColor: {
colors: [ { opacity: 0.5 }, { opacity: 1 } ]
},
lineWidth: lineWidth, lineWidth: lineWidth,
steps: steps_chart steps: steps_chart
}, },
@ -1027,7 +1011,7 @@ function pandoraFlotArea(graph_id, values, labels, labels_long, legend,
// Prepared to turn series with a checkbox // Prepared to turn series with a checkbox
// showed[i] = true; // showed[i] = true;
} }
console.log(data_base); //console.log(data_base);
max_x = data_base[0]['data'][data_base[0]['data'].length -1][0]; max_x = data_base[0]['data'][data_base[0]['data'].length -1][0];
if(min_check != 0){ if(min_check != 0){
@ -1576,7 +1560,6 @@ console.log(data_base);
borderWidth:1, borderWidth:1,
borderColor: '#C1C1C1', borderColor: '#C1C1C1',
tickColor: background_color, tickColor: background_color,
markings: markings,
color: legend_color color: legend_color
}, },
xaxes: [{ xaxes: [{
@ -1593,6 +1576,7 @@ console.log(data_base);
axisLabelFontSizePixels: font_size, axisLabelFontSizePixels: font_size,
mode: "time", mode: "time",
tickFormatter: xFormatter, tickFormatter: xFormatter,
// timeformat: "%Y/%m/%d %H:%M:%S",
}], }],
yaxes: [{ yaxes: [{
tickFormatter: yFormatter, tickFormatter: yFormatter,
@ -1799,9 +1783,18 @@ console.log(data_base);
$('#timestamp_'+graph_id).text(labels[j] + ' (' + (short_data ? parseFloat(y).toFixed(2) : parseFloat(y)) + ')'); $('#timestamp_'+graph_id).text(labels[j] + ' (' + (short_data ? parseFloat(y).toFixed(2) : parseFloat(y)) + ')');
} }
else { else {
$('#timestamp_'+graph_id).text(labels_long[j]); var date_format = new Date(labels_long[j]*1000);
}
date_format =
date_format.getDate() + "/" +
(date_format.getMonth() + 1) + "/" +
date_format.getFullYear() + "\n" +
date_format.getHours() + ":" +
date_format.getMinutes() + ":" +
date_format.getSeconds();
$('#timestamp_'+graph_id).text(date_format);
}
//$('#timestamp_'+graph_id).css('top', plot.offset().top-$('#timestamp_'+graph_id).height()*1.5); //$('#timestamp_'+graph_id).css('top', plot.offset().top-$('#timestamp_'+graph_id).height()*1.5);
var timesize = $('#timestamp_'+graph_id).width(); var timesize = $('#timestamp_'+graph_id).width();
@ -1963,23 +1956,23 @@ console.log(data_base);
var d = new Date(v); var d = new Date(v);
var result_date_format = 0; var result_date_format = 0;
if(time_format_y > 86400000){ //DAY // if(time_format_y > 86400000){ //DAY
result_date_format = result_date_format =
d.getDate() + "/" + (d.getDate() <10?'0':'') + d.getDate() + "/" +
(d.getMonth() + 1) + "/" + (d.getMonth()<9?'0':'') + (d.getMonth() + 1) + "/" +
d.getFullYear() + "\n" + d.getFullYear() + "\n" +
d.getHours() + ":" + (d.getHours()<10?'0':'') + d.getHours() + ":" +
d.getMinutes() + ":" + (d.getMinutes()<10?'0':'') + d.getMinutes() + ":" +
d.getSeconds(); //+ ":" + d.getMilliseconds(); (d.getSeconds()<10?'0':'') + d.getSeconds(); //+ ":" + d.getMilliseconds();
} /* }
else{ else{
result_date_format = result_date_format =
d.getHours() + ":" + d.getHours() + ":" +
d.getMinutes() + ":" + d.getMinutes() + ":" +
d.getSeconds(); //+ ":" + d.getMilliseconds(); d.getSeconds(); //+ ":" + d.getMilliseconds();
} }
*/
//extra_css = ''; //extra_css = '';
return '<div class='+font+' style="transform: rotate(-15deg); -ms-transform:rotate(-15deg); -moz-transform:rotate(-15deg); -webkit-transform:rotate(-15deg); -o-transform:rotate(-15deg); font-size:'+font_size+'pt; margin-top:15px;">'+result_date_format+'</div>'; return '<div class='+font+' style="transform: rotate(-15deg); -ms-transform:rotate(-15deg); -moz-transform:rotate(-15deg); -webkit-transform:rotate(-15deg); -o-transform:rotate(-15deg); font-size:'+font_size+'pt; margin-top:15px;">'+result_date_format+'</div>';
} }