mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 16:24:54 +02:00
2012-11-08 Sergio Martin <sergio.martin@artica.es>
* include/functions_graph.php include/graphs/pChart/pData.class.php include/functions_reporting.php include/constants.php: Improve performance to the SLA report items, added unknown periods and fix planned downtimes in SLAs. Adapt the default pchart graph engine colors to pandora git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7136 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
10f8229cee
commit
e2f08b720b
@ -1,3 +1,12 @@
|
|||||||
|
2012-11-08 Sergio Martin <sergio.martin@artica.es>
|
||||||
|
|
||||||
|
* include/functions_graph.php
|
||||||
|
include/graphs/pChart/pData.class.php
|
||||||
|
include/functions_reporting.php
|
||||||
|
include/constants.php: Improve performance to the SLA
|
||||||
|
report items, added unknown periods and fix planned downtimes
|
||||||
|
in SLAs. Adapt the default pchart graph engine colors to pandora
|
||||||
|
|
||||||
2012-11-07 Miguel de Dios <miguel.dedios@artica.es>
|
2012-11-07 Miguel de Dios <miguel.dedios@artica.es>
|
||||||
|
|
||||||
* index.php: cleaned source code style.
|
* index.php: cleaned source code style.
|
||||||
|
@ -110,12 +110,12 @@ switch ($config["dbtype"]) {
|
|||||||
|
|
||||||
|
|
||||||
/* Color constants */
|
/* Color constants */
|
||||||
define('COL_CRITICAL','#cc0000');
|
define('COL_CRITICAL','#FF0000');
|
||||||
define('COL_WARNING','#ffcc00');
|
define('COL_WARNING','#FFFF00');
|
||||||
define('COL_NORMAL','#8ae234');
|
define('COL_NORMAL','#38B800');
|
||||||
define('COL_NOTINIT','#ef2929');
|
define('COL_NOTINIT','#3BA0FF');
|
||||||
define('COL_UNKNOWN','#aaaaaa');
|
define('COL_UNKNOWN','#AAAAAA');
|
||||||
define('COL_ALERTFIRED','#ff8800');
|
define('COL_ALERTFIRED','#FF8800');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -607,7 +607,7 @@ function grafico_modulo_sparse_data ($agent_module_id, $period, $show_events,
|
|||||||
$graph_stats = get_statwin_graph_statistics($chart);
|
$graph_stats = get_statwin_graph_statistics($chart);
|
||||||
|
|
||||||
// Fix event and alert scale
|
// Fix event and alert scale
|
||||||
$event_max = 10 + (float)$max_value * 1.05;
|
$event_max = 2 + (float)$max_value * 1.05;
|
||||||
foreach ($chart as $timestamp => $chart_data) {
|
foreach ($chart as $timestamp => $chart_data) {
|
||||||
if ($show_events && $chart_data['event'.$series_suffix] > 0) {
|
if ($show_events && $chart_data['event'.$series_suffix] > 0) {
|
||||||
$chart[$timestamp]['event'.$series_suffix] = $event_max * 1.2;
|
$chart[$timestamp]['event'.$series_suffix] = $event_max * 1.2;
|
||||||
@ -1435,11 +1435,15 @@ function progress_bubble($progress, $width, $height, $title = '', $mode = 1, $va
|
|||||||
"&colorRGB=". $colorRGB . "' />";
|
"&colorRGB=". $colorRGB . "' />";
|
||||||
}
|
}
|
||||||
|
|
||||||
function graph_sla_slicebar ($id, $period, $sla_min, $sla_max, $date, $daysWeek = null, $time_from = null, $time_to = null, $width, $height, $home_url, $ttl = 1) {
|
function graph_sla_slicebar ($id, $period, $sla_min, $sla_max, $date, $daysWeek = null, $time_from = null, $time_to = null, $width, $height, $home_url, $ttl = 1, $data = false) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$data = reporting_get_agentmodule_sla_array ($id, $period, $sla_min, $sla_max, $date, $daysWeek, $time_from, $time_to);
|
// If the data is not provided, we got it
|
||||||
$colors = array(1 => '#38B800', 2 => '#FFFF00', 3 => '#FF0000', 4 => '#C3C3C3');
|
if($data === false) {
|
||||||
|
$data = reporting_get_agentmodule_sla_array ($id, $period, $sla_min, $sla_max, $date, $daysWeek, $time_from, $time_to);
|
||||||
|
}
|
||||||
|
|
||||||
|
$colors = array(1 => COL_NORMAL, 2 => COL_WARNING, 3 => COL_CRITICAL, 4 => COL_UNKNOWN, 5 => COL_NOTINIT);
|
||||||
|
|
||||||
return slicesbar_graph($data, $period, $width, $height, $colors, $config['fontpath'],
|
return slicesbar_graph($data, $period, $width, $height, $colors, $config['fontpath'],
|
||||||
$config['round_corner'], $home_url, $ttl);
|
$config['round_corner'], $home_url, $ttl);
|
||||||
|
@ -662,7 +662,82 @@ function reporting_get_agentmodule_sla_array ($id_agent_module, $period = 0, $mi
|
|||||||
$sql .= ' ORDER BY utimestamp ASC';
|
$sql .= ' ORDER BY utimestamp ASC';
|
||||||
$interval_data = db_get_all_rows_sql ($sql, true);
|
$interval_data = db_get_all_rows_sql ($sql, true);
|
||||||
|
|
||||||
//--------calculate planned downtime dates--------------------------
|
if ($interval_data === false) {
|
||||||
|
$interval_data = array ();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Indexing data
|
||||||
|
$interval_data_indexed = array();
|
||||||
|
foreach($interval_data as $idata) {
|
||||||
|
$interval_data_indexed[$idata['utimestamp']]['data'] = $idata['datos'];
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------Calculate unknown status events------------------------
|
||||||
|
$events_unknown = db_get_all_rows_filter ('tevento',
|
||||||
|
array ('id_agentmodule' => $id_agent_module,
|
||||||
|
"utimestamp > $datelimit",
|
||||||
|
"utimestamp < $date",
|
||||||
|
"event_type" => 'going_unknown',
|
||||||
|
'order' => 'utimestamp ASC'),
|
||||||
|
array ('id_evento', 'evento', 'timestamp', 'utimestamp', 'event_type'));
|
||||||
|
|
||||||
|
if ($events_unknown === false) {
|
||||||
|
$events_unknown = array ();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add unknown periods to data
|
||||||
|
foreach($events_unknown as $eu) {
|
||||||
|
$interval_data_indexed[$eu['utimestamp']]['data'] = 0;
|
||||||
|
$interval_data_indexed[$eu['utimestamp']]['status'] = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the last event before inverval to know if graph start on unknown
|
||||||
|
$prev_event = db_get_row_filter ('tevento',
|
||||||
|
array ('id_agentmodule' => $id_agent_module,
|
||||||
|
"utimestamp <= $datelimit",
|
||||||
|
'order' => 'utimestamp DESC'));
|
||||||
|
if(isset($prev_event['event_type']) && $prev_event['event_type'] == 'going_unknown') {
|
||||||
|
$start_unknown = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$start_unknown = false;
|
||||||
|
}
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
|
//-----------------Set limits of the interval-----------------------
|
||||||
|
// If the starting of the graph is unknown we set it
|
||||||
|
if($start_unknown) {
|
||||||
|
$interval_data_indexed[$datelimit]['data'] = 0;
|
||||||
|
$interval_data_indexed[$datelimit]['status'] = 4;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Get previous data (This adds the first data if the begin of module data is after the begin time interval)
|
||||||
|
$previous_data = modules_get_previous_data ($id_agent_module, $datelimit);
|
||||||
|
|
||||||
|
if ($previous_data !== false) {
|
||||||
|
$interval_data_indexed[$datelimit]['data'] = $previous_data['data'];
|
||||||
|
}
|
||||||
|
else { // If there are not data befor interval set unknown
|
||||||
|
$interval_data_indexed[$datelimit]['data'] = 0;
|
||||||
|
$interval_data_indexed[$datelimit]['status'] = 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get next data (This adds data before the interval of the report)
|
||||||
|
$next_data = modules_get_next_data ($id_agent_module, $date);
|
||||||
|
if ($next_data !== false) {
|
||||||
|
$interval_data_indexed[$date]['data'] = $previous_data['data'];
|
||||||
|
}
|
||||||
|
else if (count ($interval_data_indexed) > 0) {
|
||||||
|
// Propagate the last known data to the end of the interval (if there is no module data at the end point)
|
||||||
|
ksort($interval_data_indexed);
|
||||||
|
$last_data = array_pop($interval_data_indexed);
|
||||||
|
$interval_data_indexed[$date] = $last_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
|
//--------Calculate planned downtime dates--------------------------
|
||||||
$id_agent = db_get_value('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module);
|
$id_agent = db_get_value('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module);
|
||||||
$sql_downtime = "SELECT id_downtime FROM tplanned_downtime_agents WHERE id_agent=$id_agent";
|
$sql_downtime = "SELECT id_downtime FROM tplanned_downtime_agents WHERE id_agent=$id_agent";
|
||||||
$downtimes = db_get_all_rows_sql($sql_downtime);
|
$downtimes = db_get_all_rows_sql($sql_downtime);
|
||||||
@ -671,46 +746,44 @@ function reporting_get_agentmodule_sla_array ($id_agent_module, $period = 0, $mi
|
|||||||
}
|
}
|
||||||
$i = 0;
|
$i = 0;
|
||||||
$downtime_dates = array();
|
$downtime_dates = array();
|
||||||
|
|
||||||
foreach ($downtimes as $downtime) {
|
foreach ($downtimes as $downtime) {
|
||||||
$id_downtime = $downtime['id_downtime'];
|
$id_downtime = $downtime['id_downtime'];
|
||||||
$sql_date = "SELECT date_from, date_to FROM tplanned_downtime WHERE id=$id_downtime";
|
$sql_date = "SELECT date_from, date_to FROM tplanned_downtime WHERE id=$id_downtime";
|
||||||
$date_downtime = db_get_row_sql($sql_date);
|
$date_downtime = db_get_row_sql($sql_date);
|
||||||
|
|
||||||
if ($date_downtime != false) {
|
if ($date_downtime != false) {
|
||||||
$downtime_dates[$i]['date_from'] = $date_downtime['date_from'];
|
// Delete data of the planned downtime and put the last data on the upper limit
|
||||||
$downtime_dates[$i]['date_to'] = $date_downtime['date_to'];
|
$interval_data_indexed[$date_downtime['date_from']]['data'] = 0;
|
||||||
|
$interval_data_indexed[$date_downtime['date_from']]['status'] = 5;
|
||||||
|
|
||||||
|
$last_downtime_data = false;
|
||||||
|
foreach($interval_data_indexed as $idi_timestamp => $idi) {
|
||||||
|
if($idi_timestamp != $date_downtime['date_from'] && $idi_timestamp != $date_downtime['date_to'] &&
|
||||||
|
$idi_timestamp >= $date_downtime['date_from'] && $idi_timestamp <= $date_downtime['date_to']) {
|
||||||
|
$last_downtime_data = $idi['data'];
|
||||||
|
unset($interval_data_indexed[$idi_timestamp]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the last data of the interval as limit
|
||||||
|
if($last_downtime_data !== false) {
|
||||||
|
$interval_data_indexed[$date_downtime['date_to']]['data'] = $last_downtime_data;
|
||||||
|
}// If there arent data into the downtime, set unknown
|
||||||
|
else {
|
||||||
|
$interval_data_indexed[$date_downtime['date_to']]['data'] = 0;
|
||||||
|
$interval_data_indexed[$date_downtime['date_to']]['status'] = 4;
|
||||||
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
|
|
||||||
if ($interval_data === false) {
|
// Sort the array
|
||||||
$interval_data = array ();
|
ksort($interval_data_indexed);
|
||||||
}
|
|
||||||
|
|
||||||
// Get previous data (This adds the first data if the begin of module data is after the begin time interval)
|
|
||||||
$previous_data = modules_get_previous_data ($id_agent_module, $datelimit);
|
|
||||||
if ($previous_data !== false) {
|
|
||||||
$previous_data['utimestamp'] = $datelimit;
|
|
||||||
array_unshift ($interval_data, $previous_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get next data (This adds data before the interval of the report)
|
|
||||||
$next_data = modules_get_next_data ($id_agent_module, $date);
|
|
||||||
if ($next_data !== false) {
|
|
||||||
$next_data['utimestamp'] = $date;
|
|
||||||
array_push ($interval_data, $next_data);
|
|
||||||
}
|
|
||||||
else if (count ($interval_data) > 0) {
|
|
||||||
// Propagate the last known data to the end of the interval (if there is no module data at the end point)
|
|
||||||
$next_data = array_pop ($interval_data);
|
|
||||||
array_push ($interval_data, $next_data);
|
|
||||||
$next_data['utimestamp'] = $date;
|
|
||||||
array_push ($interval_data, $next_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
// We need more or equal two points
|
// We need more or equal two points
|
||||||
if (count ($interval_data) < 2) {
|
if (count ($interval_data_indexed) < 2) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -724,7 +797,7 @@ function reporting_get_agentmodule_sla_array ($id_agent_module, $period = 0, $mi
|
|||||||
$percent = 0;
|
$percent = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Getting 10% of $diff --> $percent = ($diff/100)*10, so...
|
// Getting 1I0% of $diff --> $percent = ($diff/100)*10, so...
|
||||||
$percent = $diff / 10;
|
$percent = $diff / 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -735,8 +808,8 @@ function reporting_get_agentmodule_sla_array ($id_agent_module, $period = 0, $mi
|
|||||||
$previous_value = $first_data ['datos'];
|
$previous_value = $first_data ['datos'];
|
||||||
$previous_status = 0;
|
$previous_status = 0;
|
||||||
|
|
||||||
if ($previous_value < 0) {// 4 for the Unknown value
|
if (isset($first_data['status'])) { // 4 for the Unknown value amd 5 for planned downtime
|
||||||
$previous_status = 4;
|
$previous_status = $first_data['status'];
|
||||||
}
|
}
|
||||||
elseif ((($previous_value > ($min_value - $percent)) && ($previous_value < ($min_value + $percent))) ||
|
elseif ((($previous_value > ($min_value - $percent)) && ($previous_value < ($min_value + $percent))) ||
|
||||||
(($previous_value > ($max_value - $percent)) && ($previous_value < ($max_value + $percent)))) {//2 when value is within the edges
|
(($previous_value > ($max_value - $percent)) && ($previous_value < ($max_value + $percent)))) {//2 when value is within the edges
|
||||||
@ -749,20 +822,16 @@ function reporting_get_agentmodule_sla_array ($id_agent_module, $period = 0, $mi
|
|||||||
$previous_status = 3;
|
$previous_status = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($downtime_dates as $date_dt) {
|
|
||||||
if (($date_dt['date_from'] <= $first_data['utimestamp']) AND ($date_dt['date_to'] >= $first_data['utimestamp'])) {
|
|
||||||
$previous_status = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$data_colors = array();
|
$data_colors = array();
|
||||||
$i = 0;
|
$i = 0;
|
||||||
|
|
||||||
foreach ($interval_data as $data) {
|
foreach ($interval_data_indexed as $utimestamp => $data) {
|
||||||
$change = false;
|
$change = false;
|
||||||
$value = $data['datos'];
|
$value = $data['data'];
|
||||||
if ($value < 0) {// 4 for the Unknown value
|
//~ $value = $data['datos'];
|
||||||
$status = 4;
|
//$utimestamp = $data['utimestamp'];
|
||||||
|
if (isset($data['status'])) { // 4 for the Unknown value amd 5 for planned downtime
|
||||||
|
$status = $data['status'];
|
||||||
}
|
}
|
||||||
elseif ((($value > ($min_value - $percent)) && ($value < ($min_value + $percent))) ||
|
elseif ((($value > ($min_value - $percent)) && ($value < ($min_value + $percent))) ||
|
||||||
(($value > ($max_value - $percent)) && ($value < ($max_value + $percent)))) { //2 when value is within the edges
|
(($value > ($max_value - $percent)) && ($value < ($max_value + $percent)))) { //2 when value is within the edges
|
||||||
@ -775,24 +844,18 @@ function reporting_get_agentmodule_sla_array ($id_agent_module, $period = 0, $mi
|
|||||||
$status = 3;
|
$status = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($downtime_dates as $date_dt) {
|
|
||||||
if (($date_dt['date_from'] <= $data['utimestamp']) AND ($date_dt['date_to'] >= $data['utimestamp'])) {
|
|
||||||
$status = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($status != $previous_status) {
|
if ($status != $previous_status) {
|
||||||
$change = true;
|
$change = true;
|
||||||
$data_colors[$i]['data'] = $previous_status;
|
$data_colors[$i]['data'] = $previous_status;
|
||||||
$data_colors[$i]['utimestamp'] = $data['utimestamp'] - $previous_utimestamp;
|
$data_colors[$i]['utimestamp'] = $utimestamp - $previous_utimestamp;
|
||||||
$i++;
|
$i++;
|
||||||
$previous_status = $status;
|
$previous_status = $status;
|
||||||
$previous_utimestamp = $data['utimestamp'];
|
$previous_utimestamp = $utimestamp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($change == false) {
|
if ($change == false) {
|
||||||
$data_colors[$i]['data'] = $previous_status;
|
$data_colors[$i]['data'] = $previous_status;
|
||||||
$data_colors[$i]['utimestamp'] = $data['utimestamp'] - $previous_utimestamp;
|
$data_colors[$i]['utimestamp'] = $date - $previous_utimestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $data_colors;
|
return $data_colors;
|
||||||
@ -2407,12 +2470,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
$data_graph[__('Out of limits')] = 0;
|
$data_graph[__('Out of limits')] = 0;
|
||||||
$data_graph[__('On the edge')] = 0;
|
$data_graph[__('On the edge')] = 0;
|
||||||
$data_graph[__('Unknown')] = 0;
|
$data_graph[__('Unknown')] = 0;
|
||||||
|
$data_graph[__('Plannified downtime')] = 0;
|
||||||
$data_horin_graph = array ();
|
|
||||||
$data_horin_graph[__('Inside limits')]['g'] = 0;
|
|
||||||
$data_horin_graph[__('Out of limits')]['g'] = 0;
|
|
||||||
$data_horin_graph[__('On the edge')]['g'] = 0;
|
|
||||||
$data_horin_graph[__('Unknown')]['g'] = 0;
|
|
||||||
|
|
||||||
$sla_failed = false;
|
$sla_failed = false;
|
||||||
$total_SLA = 0;
|
$total_SLA = 0;
|
||||||
@ -2431,28 +2489,67 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Get the array of the sla values
|
||||||
|
$data_sla = reporting_get_agentmodule_sla_array ($sla['id_agent_module'], $content['period'],
|
||||||
|
$sla['sla_min'], $sla['sla_max'], $report['datetime'], $content, $content['time_from'],
|
||||||
|
$content['time_to']);
|
||||||
|
|
||||||
//Get the sla_value in % and store it on $sla_value
|
//Get the sla_value in % and store it on $sla_value
|
||||||
$sla_value = reporting_get_agentmodule_sla ($sla['id_agent_module'], $content['period'],
|
$data_total = 0;
|
||||||
$sla['sla_min'], $sla['sla_max'], $report["datetime"], $content, $content['time_from'],
|
$data_pass = 0;
|
||||||
$content['time_to']);
|
foreach($data_sla as $d) {
|
||||||
|
switch($d['data']) {
|
||||||
|
case 1:
|
||||||
|
$data_pass += $d['utimestamp'];
|
||||||
|
$data_total += $d['utimestamp'];
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$data_pass += $d['utimestamp'];
|
||||||
|
$data_total += $d['utimestamp'];
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
$data_total += $d['utimestamp'];
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$sla_value = ($data_pass / $data_total) * 100;
|
||||||
|
|
||||||
//Do not show right modules if 'only_display_wrong' is active
|
//Do not show right modules if 'only_display_wrong' is active
|
||||||
if ($content['only_display_wrong'] == 1 && $sla_value >= $sla['sla_limit']) continue;
|
if ($content['only_display_wrong'] == 1 && $sla_value >= $sla['sla_limit']) continue;
|
||||||
|
|
||||||
$sla_showed[] = $sla;
|
// Calculate general pie graph data
|
||||||
$sla_showed_values[] = $sla_value;
|
foreach($data_sla as $d) {
|
||||||
|
switch($d['data']) {
|
||||||
if (($config ['metaconsole'] == 1) && defined('METACONSOLE')) {
|
case 1:
|
||||||
if ($content['type'] != 'netflow_area' &&
|
$data_graph[__('Inside limits')] += $d['utimestamp'];
|
||||||
$content['type'] != 'netflow_pie' &&
|
break;
|
||||||
$content['type'] != 'netflow_data' &&
|
case 2:
|
||||||
$content['type'] != 'netflow_statistics' &&
|
$data_graph[__('On the edge')] += $d['utimestamp'];
|
||||||
$content['type'] != 'netflow_summary') {
|
break;
|
||||||
//Restore db connection
|
case 3:
|
||||||
metaconsole_restore_db();
|
$data_graph[__('Out of limits')] += $d['utimestamp'];
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
$data_graph[__('Unknown')] += $d['utimestamp'];
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
$data_graph[__('Plannified downtime')] += $d['utimestamp'];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$sla_showed[] = $sla;
|
||||||
|
$sla_showed_values[] = $sla_value;
|
||||||
|
$sla_data_arrays[] = $data_sla;
|
||||||
|
|
||||||
|
if (($config ['metaconsole'] == 1) && defined('METACONSOLE')) {
|
||||||
|
//Restore db connection
|
||||||
|
metaconsole_restore_db();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SLA items sorted descending ()
|
// SLA items sorted descending ()
|
||||||
@ -2492,24 +2589,6 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
$total_result_SLA = 'fail';
|
$total_result_SLA = 'fail';
|
||||||
}
|
}
|
||||||
|
|
||||||
//Fill the array data_graph for the pie graph
|
|
||||||
if ($sla_value === false) {
|
|
||||||
$data_graph[__('Unknown')]++;
|
|
||||||
$data_horin_graph[__('Unknown')]['g']++;
|
|
||||||
}
|
|
||||||
else if ($sla_value <= ($sla['sla_limit']+$edge_interval) && $sla_value >= ($sla['sla_limit']-$edge_interval)) {
|
|
||||||
$data_graph[__('On the edge')]++;
|
|
||||||
$data_horin_graph[__('On the edge')]['g']++;
|
|
||||||
}
|
|
||||||
else if ($sla_value > ($sla['sla_limit']+$edge_interval)) {
|
|
||||||
$data_graph[__('Inside limits')]++;
|
|
||||||
$data_horin_graph[__('Inside limits')]['g']++;
|
|
||||||
}
|
|
||||||
else if ($sla_value < ($sla['sla_limit']-$edge_interval)) {
|
|
||||||
$data_graph[__('Out of limits')]++;
|
|
||||||
$data_horin_graph[__('Out of limits')]['g']++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$total_SLA += $sla_value;
|
$total_SLA += $sla_value;
|
||||||
|
|
||||||
if ($show_table) {
|
if ($show_table) {
|
||||||
@ -2567,7 +2646,7 @@ function reporting_render_report_html_item ($content, $table, $report, $mini = f
|
|||||||
|
|
||||||
$dataslice[1] = graph_sla_slicebar ($sla['id_agent_module'], $content['period'],
|
$dataslice[1] = graph_sla_slicebar ($sla['id_agent_module'], $content['period'],
|
||||||
$sla['sla_min'], $sla['sla_max'], $report['datetime'], $content, $content['time_from'],
|
$sla['sla_min'], $sla['sla_max'], $report['datetime'], $content, $content['time_from'],
|
||||||
$content['time_to'], 650, 25, ui_get_full_url(false) . '/');
|
$content['time_to'], 650, 25, ui_get_full_url(false) . '/', 1, $sla_data_arrays[$k]);
|
||||||
|
|
||||||
array_push ($tableslice->data, $dataslice);
|
array_push ($tableslice->data, $dataslice);
|
||||||
}
|
}
|
||||||
|
@ -42,14 +42,15 @@
|
|||||||
{
|
{
|
||||||
var $Data;
|
var $Data;
|
||||||
|
|
||||||
var $Palette = array("0"=>array("R"=>188,"G"=>224,"B"=>46,"Alpha"=>100),
|
var $Palette = array("0"=>array("R"=>138,"G"=>226,"B"=>52,"Alpha"=>100),
|
||||||
"1"=>array("R"=>224,"G"=>100,"B"=>46,"Alpha"=>100),
|
"1"=>array("R"=>204,"G"=>0,"B"=>0,"Alpha"=>100),
|
||||||
"2"=>array("R"=>224,"G"=>214,"B"=>46,"Alpha"=>100),
|
"2"=>array("R"=>255,"G"=>204,"B"=>0,"Alpha"=>100),
|
||||||
"3"=>array("R"=>46,"G"=>151,"B"=>224,"Alpha"=>100),
|
"3"=>array("R"=>195,"G"=>195,"B"=>195,"Alpha"=>100),
|
||||||
"4"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
|
"4"=>array("R"=>59,"G"=>160,"B"=>255,"Alpha"=>100),
|
||||||
"5"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
|
"5"=>array("R"=>176,"G"=>46,"B"=>224,"Alpha"=>100),
|
||||||
"6"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
|
"6"=>array("R"=>224,"G"=>46,"B"=>117,"Alpha"=>100),
|
||||||
"7"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));
|
"7"=>array("R"=>92,"G"=>224,"B"=>46,"Alpha"=>100),
|
||||||
|
"8"=>array("R"=>224,"G"=>176,"B"=>46,"Alpha"=>100));
|
||||||
|
|
||||||
/* Class creator */
|
/* Class creator */
|
||||||
function pData()
|
function pData()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user