2010-07-29 Ramon Novoa <rnovoa@artica.es>
* include/functions_reporting.php: Updated reporting functions to work with uncompressed data. * include/fgraph.php, include/functions.php: Added a generic function to check whether a module has compressed data. git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@3077 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
parent
80d6ec2dc6
commit
b40c7b00d7
|
@ -1,3 +1,11 @@
|
||||||
|
2010-07-29 Ramon Novoa <rnovoa@artica.es>
|
||||||
|
|
||||||
|
* include/functions_reporting.php: Updated reporting functions to work
|
||||||
|
with uncompressed data.
|
||||||
|
|
||||||
|
* include/fgraph.php, include/functions.php: Added a generic
|
||||||
|
function to check whether a module has compressed data.
|
||||||
|
|
||||||
2010-07-28 Sergio Martin <sergio.martin@artica.es>
|
2010-07-28 Sergio Martin <sergio.martin@artica.es>
|
||||||
|
|
||||||
* include/functions_html.php: Improved the print_select function
|
* include/functions_html.php: Improved the print_select function
|
||||||
|
|
|
@ -159,11 +159,9 @@ function graphic_combined_module ($module_list, $weight_list, $period, $width, $
|
||||||
$module_name_list[$i] = $agent_name." / ".substr ($module_name, 0, 20);
|
$module_name_list[$i] = $agent_name." / ".substr ($module_name, 0, 20);
|
||||||
$id_module_type = get_agentmodule_type ($agent_module_id);
|
$id_module_type = get_agentmodule_type ($agent_module_id);
|
||||||
$module_type = get_moduletype_name ($id_module_type);
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
if (strstr($module_type, 'async') !== false || strstr($module_type, 'log4x') !== false) {
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
$async_module = true;
|
if ($uncompressed_module) {
|
||||||
$avg_only = 1;
|
$avg_only = 1;
|
||||||
} else {
|
|
||||||
$async_module = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get event data (contains alert data too)
|
// Get event data (contains alert data too)
|
||||||
|
@ -191,7 +189,7 @@ function graphic_combined_module ($module_list, $weight_list, $period, $width, $
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncompressed module data
|
// Uncompressed module data
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$min_necessary = 1;
|
$min_necessary = 1;
|
||||||
|
|
||||||
// Compressed module data
|
// Compressed module data
|
||||||
|
@ -294,7 +292,7 @@ function graphic_combined_module ($module_list, $weight_list, $period, $width, $
|
||||||
$previous_data = $total;
|
$previous_data = $total;
|
||||||
// Compressed data
|
// Compressed data
|
||||||
} else {
|
} else {
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$graph_values[$i][$timestamp] = 0;
|
$graph_values[$i][$timestamp] = 0;
|
||||||
} else {
|
} else {
|
||||||
$graph_values[$i][$timestamp] = $previous_data * $weight_list[$i];
|
$graph_values[$i][$timestamp] = $previous_data * $weight_list[$i];
|
||||||
|
@ -1294,11 +1292,9 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
|
||||||
$module_name = get_agentmodule_name ($agent_module_id);
|
$module_name = get_agentmodule_name ($agent_module_id);
|
||||||
$id_module_type = get_agentmodule_type ($agent_module_id);
|
$id_module_type = get_agentmodule_type ($agent_module_id);
|
||||||
$module_type = get_moduletype_name ($id_module_type);
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
if (strstr($module_type, 'async') !== false || strstr($module_type, 'log4x') !== false) {
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
$async_module = true;
|
if ($uncompressed_module) {
|
||||||
$avg_only = 1;
|
$avg_only = 1;
|
||||||
} else {
|
|
||||||
$async_module = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get event data (contains alert data too)
|
// Get event data (contains alert data too)
|
||||||
|
@ -1326,7 +1322,7 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncompressed module data
|
// Uncompressed module data
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$min_necessary = 1;
|
$min_necessary = 1;
|
||||||
|
|
||||||
// Compressed module data
|
// Compressed module data
|
||||||
|
@ -1443,7 +1439,7 @@ function grafico_modulo_sparse ($agent_module_id, $period, $show_events,
|
||||||
$previous_data = $total;
|
$previous_data = $total;
|
||||||
// Compressed data
|
// Compressed data
|
||||||
} else {
|
} else {
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$chart[$timestamp]['sum'] = 0;
|
$chart[$timestamp]['sum'] = 0;
|
||||||
$chart[$timestamp]['min'] = 0;
|
$chart[$timestamp]['min'] = 0;
|
||||||
$chart[$timestamp]['max'] = 0;
|
$chart[$timestamp]['max'] = 0;
|
||||||
|
@ -1538,11 +1534,9 @@ function grafico_modulo_boolean ($agent_module_id, $period, $show_events,
|
||||||
$module_name = get_agentmodule_name ($agent_module_id);
|
$module_name = get_agentmodule_name ($agent_module_id);
|
||||||
$id_module_type = get_agentmodule_type ($agent_module_id);
|
$id_module_type = get_agentmodule_type ($agent_module_id);
|
||||||
$module_type = get_moduletype_name ($id_module_type);
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
if (strstr($module_type, 'async') !== false || strstr($module_type, 'log4x') !== false) {
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
$async_module = true;
|
if ($uncompressed_module) {
|
||||||
$avg_only = 1;
|
$avg_only = 1;
|
||||||
} else {
|
|
||||||
$async_module = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get event data (contains alert data too)
|
// Get event data (contains alert data too)
|
||||||
|
@ -1570,7 +1564,7 @@ function grafico_modulo_boolean ($agent_module_id, $period, $show_events,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncompressed module data
|
// Uncompressed module data
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$min_necessary = 1;
|
$min_necessary = 1;
|
||||||
|
|
||||||
// Compressed module data
|
// Compressed module data
|
||||||
|
@ -1687,7 +1681,7 @@ function grafico_modulo_boolean ($agent_module_id, $period, $show_events,
|
||||||
$previous_data = $total;
|
$previous_data = $total;
|
||||||
// Compressed data
|
// Compressed data
|
||||||
} else {
|
} else {
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$chart[$timestamp]['sum'] = 0;
|
$chart[$timestamp]['sum'] = 0;
|
||||||
} else {
|
} else {
|
||||||
$chart[$timestamp]['sum'] = $previous_data;
|
$chart[$timestamp]['sum'] = $previous_data;
|
||||||
|
@ -1800,11 +1794,9 @@ function grafico_modulo_string ($agent_module_id, $period, $show_events,
|
||||||
$module_name = get_agentmodule_name ($agent_module_id);
|
$module_name = get_agentmodule_name ($agent_module_id);
|
||||||
$id_module_type = get_agentmodule_type ($agent_module_id);
|
$id_module_type = get_agentmodule_type ($agent_module_id);
|
||||||
$module_type = get_moduletype_name ($id_module_type);
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
if (strstr($module_type, 'async') !== false || strstr($module_type, 'log4x') !== false) {
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
$async_module = true;
|
if ($uncompressed_module) {
|
||||||
$avg_only = 1;
|
$avg_only = 1;
|
||||||
} else {
|
|
||||||
$async_module = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get event data (contains alert data too)
|
// Get event data (contains alert data too)
|
||||||
|
@ -1832,7 +1824,7 @@ function grafico_modulo_string ($agent_module_id, $period, $show_events,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Uncompressed module data
|
// Uncompressed module data
|
||||||
if ($async_module) {
|
if ($uncompressed_module) {
|
||||||
$min_necessary = 1;
|
$min_necessary = 1;
|
||||||
|
|
||||||
// Compressed module data
|
// Compressed module data
|
||||||
|
|
|
@ -746,6 +746,21 @@ function is_module_data_string ($module_name) {
|
||||||
return preg_match ('/\_string$/', $module_name);
|
return preg_match ('/\_string$/', $module_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a module data is uncompressed according
|
||||||
|
* to the module type.
|
||||||
|
*
|
||||||
|
* @param string module_type Type of the module.
|
||||||
|
*
|
||||||
|
* @return bool true if the module data is uncompressed.
|
||||||
|
*/
|
||||||
|
function is_module_uncompressed ($module_type) {
|
||||||
|
if (strstr($module_type, 'async') !== false || strstr($module_type, 'log4x') !== false) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all event types in an array
|
* Get all event types in an array
|
||||||
*
|
*
|
||||||
|
|
|
@ -44,6 +44,10 @@ function get_agentmodule_data_average ($id_agent_module, $period, $date = 0) {
|
||||||
if ((empty ($period)) OR ($period == 0)) $period = $config["sla_period"];
|
if ((empty ($period)) OR ($period == 0)) $period = $config["sla_period"];
|
||||||
$datelimit = $date - $period;
|
$datelimit = $date - $period;
|
||||||
|
|
||||||
|
$id_module_type = get_agentmodule_type ($id_agent_module);
|
||||||
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
|
|
||||||
// Get module data
|
// Get module data
|
||||||
$interval_data = get_db_all_rows_sql ('SELECT * FROM tagente_datos
|
$interval_data = get_db_all_rows_sql ('SELECT * FROM tagente_datos
|
||||||
WHERE id_agente_modulo = ' . (int) $id_agent_module .
|
WHERE id_agente_modulo = ' . (int) $id_agent_module .
|
||||||
|
@ -52,6 +56,12 @@ function get_agentmodule_data_average ($id_agent_module, $period, $date = 0) {
|
||||||
' ORDER BY utimestamp ASC', true);
|
' ORDER BY utimestamp ASC', true);
|
||||||
if ($interval_data === false) $interval_data = array ();
|
if ($interval_data === false) $interval_data = array ();
|
||||||
|
|
||||||
|
// Uncompressed module data
|
||||||
|
if ($uncompressed_module) {
|
||||||
|
$min_necessary = 1;
|
||||||
|
|
||||||
|
// Compressed module data
|
||||||
|
} else {
|
||||||
// Get previous data
|
// Get previous data
|
||||||
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
||||||
if ($previous_data !== false) {
|
if ($previous_data !== false) {
|
||||||
|
@ -72,23 +82,44 @@ function get_agentmodule_data_average ($id_agent_module, $period, $date = 0) {
|
||||||
array_push ($interval_data, $next_data);
|
array_push ($interval_data, $next_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count ($interval_data) < 2) {
|
$min_necessary = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count ($interval_data) < $min_necessary) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set initial conditions
|
// Set initial conditions
|
||||||
$total = 0;
|
$total = 0;
|
||||||
|
$count = 0;
|
||||||
|
if (! $uncompressed_module) {
|
||||||
$previous_data = array_shift ($interval_data);
|
$previous_data = array_shift ($interval_data);
|
||||||
|
}
|
||||||
foreach ($interval_data as $data) {
|
foreach ($interval_data as $data) {
|
||||||
|
if (! $uncompressed_module) {
|
||||||
$total += $previous_data['datos'] * ($data['utimestamp'] - $previous_data['utimestamp']);
|
$total += $previous_data['datos'] * ($data['utimestamp'] - $previous_data['utimestamp']);
|
||||||
$previous_data = $data;
|
$previous_data = $data;
|
||||||
|
} else {
|
||||||
|
$total += $data['datos'];
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Compressed module data
|
||||||
|
if (! $uncompressed_module) {
|
||||||
if ($period == 0) {
|
if ($period == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $total / $period;
|
return $total / $period;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncompressed module data
|
||||||
|
if ($count == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $total / $count;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -108,6 +139,10 @@ function get_agentmodule_data_max ($id_agent_module, $period, $date = 0) {
|
||||||
if ((empty ($period)) OR ($period == 0)) $period = $config["sla_period"];
|
if ((empty ($period)) OR ($period == 0)) $period = $config["sla_period"];
|
||||||
$datelimit = $date - $period;
|
$datelimit = $date - $period;
|
||||||
|
|
||||||
|
$id_module_type = get_agentmodule_type ($id_agent_module);
|
||||||
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
|
|
||||||
// Get module data
|
// Get module data
|
||||||
$interval_data = get_db_all_rows_sql ('SELECT * FROM tagente_datos
|
$interval_data = get_db_all_rows_sql ('SELECT * FROM tagente_datos
|
||||||
WHERE id_agente_modulo = ' . (int) $id_agent_module .
|
WHERE id_agente_modulo = ' . (int) $id_agent_module .
|
||||||
|
@ -116,6 +151,12 @@ function get_agentmodule_data_max ($id_agent_module, $period, $date = 0) {
|
||||||
' ORDER BY utimestamp ASC', true);
|
' ORDER BY utimestamp ASC', true);
|
||||||
if ($interval_data === false) $interval_data = array ();
|
if ($interval_data === false) $interval_data = array ();
|
||||||
|
|
||||||
|
// Uncompressed module data
|
||||||
|
if ($uncompressed_module) {
|
||||||
|
$min_necessary = 1;
|
||||||
|
|
||||||
|
// Compressed module data
|
||||||
|
} else {
|
||||||
// Get previous data
|
// Get previous data
|
||||||
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
||||||
if ($previous_data !== false) {
|
if ($previous_data !== false) {
|
||||||
|
@ -136,16 +177,20 @@ function get_agentmodule_data_max ($id_agent_module, $period, $date = 0) {
|
||||||
array_push ($interval_data, $next_data);
|
array_push ($interval_data, $next_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count ($interval_data) < 2) {
|
$min_necessary = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count ($interval_data) < $min_necessary) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set initial conditions
|
// Set initial conditions
|
||||||
|
$max = 0;
|
||||||
|
if (! $uncompressed_module) {
|
||||||
$previous_data = array_shift ($interval_data);
|
$previous_data = array_shift ($interval_data);
|
||||||
if ($previous_data['utimestamp'] == $datelimit) {
|
if ($previous_data['utimestamp'] == $datelimit) {
|
||||||
$max = $previous_data['datos'];
|
$max = $previous_data['datos'];
|
||||||
} else {
|
}
|
||||||
$max = 0;
|
|
||||||
}
|
}
|
||||||
foreach ($interval_data as $data) {
|
foreach ($interval_data as $data) {
|
||||||
if ($data['datos'] > $max) {
|
if ($data['datos'] > $max) {
|
||||||
|
@ -173,6 +218,10 @@ function get_agentmodule_data_min ($id_agent_module, $period, $date = 0) {
|
||||||
if ((empty ($period)) OR ($period == 0)) $period = $config["sla_period"];
|
if ((empty ($period)) OR ($period == 0)) $period = $config["sla_period"];
|
||||||
$datelimit = $date - $period;
|
$datelimit = $date - $period;
|
||||||
|
|
||||||
|
$id_module_type = get_agentmodule_type ($id_agent_module);
|
||||||
|
$module_type = get_moduletype_name ($id_module_type);
|
||||||
|
$uncompressed_module = is_module_uncompressed ($module_type);
|
||||||
|
|
||||||
// Get module data
|
// Get module data
|
||||||
$interval_data = get_db_all_rows_sql ('SELECT * FROM tagente_datos
|
$interval_data = get_db_all_rows_sql ('SELECT * FROM tagente_datos
|
||||||
WHERE id_agente_modulo = ' . (int) $id_agent_module .
|
WHERE id_agente_modulo = ' . (int) $id_agent_module .
|
||||||
|
@ -181,6 +230,12 @@ function get_agentmodule_data_min ($id_agent_module, $period, $date = 0) {
|
||||||
' ORDER BY utimestamp ASC', true);
|
' ORDER BY utimestamp ASC', true);
|
||||||
if ($interval_data === false) $interval_data = array ();
|
if ($interval_data === false) $interval_data = array ();
|
||||||
|
|
||||||
|
// Uncompressed module data
|
||||||
|
if ($uncompressed_module) {
|
||||||
|
$min_necessary = 1;
|
||||||
|
|
||||||
|
// Compressed module data
|
||||||
|
} else {
|
||||||
// Get previous data
|
// Get previous data
|
||||||
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
||||||
if ($previous_data !== false) {
|
if ($previous_data !== false) {
|
||||||
|
@ -201,16 +256,20 @@ function get_agentmodule_data_min ($id_agent_module, $period, $date = 0) {
|
||||||
array_push ($interval_data, $next_data);
|
array_push ($interval_data, $next_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count ($interval_data) < 2) {
|
$min_necessary = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count ($interval_data) < $min_necessary) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set initial conditions
|
// Set initial conditions
|
||||||
|
$min = 0;
|
||||||
|
if (! $uncompressed_module) {
|
||||||
$previous_data = array_shift ($interval_data);
|
$previous_data = array_shift ($interval_data);
|
||||||
if ($previous_data['utimestamp'] == $datelimit) {
|
if ($previous_data['utimestamp'] == $datelimit) {
|
||||||
$min = $previous_data['datos'];
|
$min = $previous_data['datos'];
|
||||||
} else {
|
}
|
||||||
$min = 0;
|
|
||||||
}
|
}
|
||||||
foreach ($interval_data as $data) {
|
foreach ($interval_data as $data) {
|
||||||
if ($data['datos'] < $min) {
|
if ($data['datos'] < $min) {
|
||||||
|
@ -240,6 +299,7 @@ function get_agentmodule_data_sum ($id_agent_module, $period, $date = 0) {
|
||||||
$id_module_type = get_db_value ('id_tipo_modulo', 'tagente_modulo','id_agente_modulo', $id_agent_module);
|
$id_module_type = get_db_value ('id_tipo_modulo', 'tagente_modulo','id_agente_modulo', $id_agent_module);
|
||||||
$module_name = get_db_value ('nombre', 'ttipo_modulo', 'id_tipo', $id_module_type);
|
$module_name = get_db_value ('nombre', 'ttipo_modulo', 'id_tipo', $id_module_type);
|
||||||
$module_interval = get_module_interval ($id_agent_module);
|
$module_interval = get_module_interval ($id_agent_module);
|
||||||
|
$uncompressed_module = is_module_uncompressed ($module_name);
|
||||||
|
|
||||||
// Wrong module type
|
// Wrong module type
|
||||||
if (is_module_data_string ($module_name)) {
|
if (is_module_data_string ($module_name)) {
|
||||||
|
@ -257,6 +317,12 @@ function get_agentmodule_data_sum ($id_agent_module, $period, $date = 0) {
|
||||||
' ORDER BY utimestamp ASC', true);
|
' ORDER BY utimestamp ASC', true);
|
||||||
if ($interval_data === false) $interval_data = array ();
|
if ($interval_data === false) $interval_data = array ();
|
||||||
|
|
||||||
|
// Uncompressed module data
|
||||||
|
if ($uncompressed_module) {
|
||||||
|
$min_necessary = 1;
|
||||||
|
|
||||||
|
// Compressed module data
|
||||||
|
} else {
|
||||||
// Get previous data
|
// Get previous data
|
||||||
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
$previous_data = get_previous_data ($id_agent_module, $datelimit);
|
||||||
if ($previous_data !== false) {
|
if ($previous_data !== false) {
|
||||||
|
@ -277,15 +343,23 @@ function get_agentmodule_data_sum ($id_agent_module, $period, $date = 0) {
|
||||||
array_push ($interval_data, $next_data);
|
array_push ($interval_data, $next_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count ($interval_data) < 2) {
|
$min_necessary = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count ($interval_data) < $min_necessary) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set initial conditions
|
// Set initial conditions
|
||||||
$total = 0;
|
$total = 0;
|
||||||
|
if (! $uncompressed_module) {
|
||||||
$previous_data = array_shift ($interval_data);
|
$previous_data = array_shift ($interval_data);
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($interval_data as $data) {
|
foreach ($interval_data as $data) {
|
||||||
if ($module_inc) {
|
if ($uncompressed_module) {
|
||||||
|
$total += $data['datos'];
|
||||||
|
} else if ($module_inc) {
|
||||||
$total += $previous_data['datos'] * ($data['utimestamp'] - $previous_data['utimestamp']);
|
$total += $previous_data['datos'] * ($data['utimestamp'] - $previous_data['utimestamp']);
|
||||||
} else {
|
} else {
|
||||||
$total += $previous_data['datos'] * ($data['utimestamp'] - $previous_data['utimestamp']) / $module_interval;
|
$total += $previous_data['datos'] * ($data['utimestamp'] - $previous_data['utimestamp']) / $module_interval;
|
||||||
|
|
Loading…
Reference in New Issue