2008-06-20 Esteban Sanchez <estebans@artica.es>

* include/functions_reporting.php: Deleted reference to localhost. Align 
        times fired colum. Show priority string instead on alerts.

        * include/functions.php: Show only one decimal by default on 
        format_numeric() and format_for_graph(). Cut alert name, agent name 
        and module name. Style correction.

        * include/functions_db.php: Function give_moduleinterval() renamed to
        get_module_interval() and fixed a typo with variable name. On 
        get_previous_data() get the data if it's not older than the interval.
        Order datas on min, max and sum calculation by the timestamp. Fixed and
        improved the sumatory calculation.

        * operation/agentes/status_monitor.php: Ignore disabled modules.

        * operation/reporting/reporting_viewer.php: Do not use format_for_graph(),
        but format_numeric() instead.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@892 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
slerena 2008-06-20 12:13:35 +00:00
parent ca7961a828
commit 76a4ac5f0b
6 changed files with 79 additions and 56 deletions

View File

@ -1,3 +1,23 @@
2008-06-20 Esteban Sanchez <estebans@artica.es>
* include/functions_reporting.php: Deleted reference to localhost. Align
times fired colum. Show priority string instead on alerts.
* include/functions.php: Show only one decimal by default on
format_numeric() and format_for_graph(). Cut alert name, agent name
and module name. Style correction.
* include/functions_db.php: Function give_moduleinterval() renamed to
get_module_interval() and fixed a typo with variable name. On
get_previous_data() get the data if it's not older than the interval.
Order datas on min, max and sum calculation by the timestamp. Fixed and
improved the sumatory calculation.
* operation/agentes/status_monitor.php: Ignore disabled modules.
* operation/reporting/reporting_viewer.php: Do not use format_for_graph(),
but format_numeric() instead.
2008-06-19 Sancho Lerena <slerena@gmail.com>
* Fixed some typos.

View File

@ -386,13 +386,13 @@ function pagination ($count, $url, $offset) {
* shown. Otherwise, the number of decimals are given in the call.
*
* @param number Number to be rendered
* @param decimals Number of decimals to be shown. Default value: 2
* @param decimals Number of decimals to be shown. Default value: 1
* @param dec_point Decimal separator string. Default value: .
* @param thousands_sep Thousands separator string. Default value: ,
*
* @return
*/
function format_numeric ($number, $decimals = 2, $dec_point = ".", $thousands_sep = ",") {
function format_numeric ($number, $decimals = 1, $dec_point = ".", $thousands_sep = ",") {
if ($number == 0)
return 0;
@ -408,23 +408,23 @@ function format_numeric ($number, $decimals = 2, $dec_point = ".", $thousands_se
* It adds magnitude suffix to the number (M for millions, K for thousands...)
*
* @param number Number to be rendered
* @param decimals Number of decimals to display
* @param decimals Number of decimals to display. Default value: 1
* @param dec_point Decimal separator character. Default value: .
* @param thousands_sep Thousands separator character. Default value: ,
*
* @return A number rendered to be displayed gently on a graph.
*/
function format_for_graph ($number , $decimals = 2, $dec_point = ".", $thousands_sep = ",") {
if ($number > "1000000") {
function format_for_graph ($number , $decimals = 1, $dec_point = ".", $thousands_sep = ",") {
if ($number > 1000000) {
if (fmod ($number, 1000000) > 0)
return number_format ($number / 1000000, $decimals, $dec_point, $thousands_sep)." M";
return number_format ($number / 1000000, 0, $dec_point, $thousands_sep)." M";
}
if ($number > "1000") {
if ($number > 1000) {
if (fmod ($number, 1000) > 0)
return number_format ($number / 1000, $decimals, $dec_point, $thousands_sep )." K";
return number_format ($number/1000, 0, $dec_point, $thousands_sep )." K";
return number_format ($number / 1000, 0, $dec_point, $thousands_sep )." K";
}
/* If it has decimals */
if (fmod ($number , 1))
@ -854,16 +854,16 @@ function show_alert_show_view ($data, $tdcolor = "datos", $combined = 0) {
}
$alert_name = get_db_sql ("SELECT nombre FROM talerta WHERE id_alerta = ".$data["id_alerta"]);
echo "<td class='".$tdcolor."'>".$alert_name."</td>";
echo "<td class='".$tdcolor."f9' title='$alert_name'>".substr($alert_name,0,15)."</td>";
if ($combined == 0) {
echo "<td class='".$tdcolor."'>".substr($module_name,0,21)."</td>";
echo "<td class='".$tdcolor."'>".substr($module_name,0,12)."</td>";
} else {
echo "<td class='".$tdcolor."'>";
// More details EYE tooltip (combined)
echo " <a href='#' class='info_table'><img class='top' src='images/eye.png' alt=''><span>";
echo show_alert_row_mini ($data["id_aam"]);
echo "</span></a> ";
echo substr($agent_name,0,21)."</td>";
echo substr($agent_name,0,16)."</td>";
}
// Description

View File

@ -825,17 +825,16 @@ function event_insert ($evento, $id_grupo, $id_agente, $status = 0,
*
* If the module interval is not set, the agent interval is returned
*
* @param id_agentmodule Id agent module to get the interval value.
* @param id_agent_module Id agent module to get the interval value.
*
* @return
*/
function give_moduleinterval ($id_agentmodule) {
function get_module_interval ($id_agent_module) {
$interval = (int) get_db_value ('module_interval', 'tagente_modulo', 'id_agente_modulo', $id_agent_module);
if ($interval)
return $interval;
$id_agent = get_db_value ('id_agente', 'tagente_modulo', 'id_agente_modulo', (int) $id_agent_module);
$id_agent = (int) give_agentinterval ($id_agent);get_db_value ('id_agente', 'tagente_modulo', 'id_agente_modulo', $id_agent_module);
return (int) give_agentinterval ($id_agent);
}
@ -1383,7 +1382,9 @@ function return_coordinate_y_layoutdata ($id_layoutdata){
* Get the previous data to the timestamp provided.
*
* It's useful to know the first value of a module in an interval,
* since it will be the last value in the
* since it will be the last value in the table which has a timestamp
* before the beginning of the interval. All this calculation is due
* to the data compression algorithm.
*
* @param $id_agent_module Agent module id
* @param $utimestamp The timestamp to look backwards from and get the data.
@ -1391,11 +1392,14 @@ function return_coordinate_y_layoutdata ($id_layoutdata){
* @return The row of tagente_datos of the last period. NULL if there were no data.
*/
function get_previous_data ($id_agent_module, $utimestamp) {
$interval = get_module_interval ($id_agent_module);
$sql = sprintf ('SELECT * FROM tagente_datos
WHERE id_agente_modulo = %d
AND utimestamp <= %d
ORDER by utimestamp DESC LIMIT 1',
$id_agent_module, $utimestamp);
AND utimestamp > %d
ORDER BY utimestamp DESC LIMIT 1',
$id_agent_module, $utimestamp, $utimestamp - $interval);
return get_db_row_sql ($sql);
}
@ -1445,8 +1449,7 @@ function return_moduledata_max_value ($id_agent_module, $period, $date = 0) {
$sql = sprintf ("SELECT MAX(datos) FROM tagente_datos
WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp ASC",
AND utimestamp > %d AND utimestamp <= %d",
$id_agent_module, $datelimit, $date);
$max = (float) get_db_sql ($sql);
@ -1474,8 +1477,7 @@ function return_moduledata_min_value ($id_agent_module, $period, $date = 0) {
$sql = sprintf ("SELECT MIN(datos) FROM tagente_datos
WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp ASC",
AND utimestamp > %d AND utimestamp <= %d",
$id_agent_module, $datelimit, $date);
$min = (float) get_db_sql ($sql);
@ -1504,12 +1506,12 @@ function return_moduledata_sum_value ($id_agent_module, $period, $date = 0) {
if (is_module_data_string ($module_name)) {
return lang_string ('wrong_module_type');
}
$interval = get_db_value ('current_interval', 'tagente_estado', 'id_agente_modulo', $id_agent_module);
// Get the whole interval of data
$sql = sprintf ('SELECT * FROM tagente_datos
$sql = sprintf ('SELECT utimestamp, datos FROM tagente_datos
WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d',
AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp ASC',
$id_agent_module, $datelimit, $date);
$datas = get_db_all_rows_sqlfree ($sql);
@ -1519,40 +1521,39 @@ function return_moduledata_sum_value ($id_agent_module, $period, $date = 0) {
/* Add data to the beginning */
array_unshift ($datas, $previous_data);
}
$last_data = "";
$total_badtime = 0;
$interval_begin = 0;
$interval_last = 0;
if (sizeof ($datas) == 0) {
return 0;
}
$last_data = "";
$total_badtime = 0;
$module_interval = get_module_interval ($id_agent_module);
$timestamp_begin = $datelimit + module_interval;
$timestamp_end = 0;
$sum = 0;
$previous_data = 0;
$data_value = 0;
foreach ($datas as $data) {
if ($interval_begin != 0) {
$interval_last = $data["utimestamp"];
$elapsed = $interval_last - $interval_begin;
$times = intval ($elapsed / $interval);
$timestamp_end = $data["utimestamp"];
$elapsed = $timestamp_end - $timestamp_begin;
$times = intval ($elapsed / $module_interval);
if (is_module_inc ($module_name)) {
$data_value = $data['datos'] * $module_interval;
} else {
$times = 1;
}
if (is_module_proc ($module_name)) {
$previous_data = $data['datos'] * $interval;
} else {
$previous_data = $data['datos'];
$data_value = $data['datos'];
}
$interval_begin = $data["utimestamp"];
$sum += $times * $data_value;
$timestamp_begin = $data["utimestamp"];
}
/* The last interval value must be get from tagente_estado, but
/* The last value must be get from tagente_estado, but
it will count only if it's not older than date demanded
*/
$interval_last = get_db_value ('utimestamp', 'tagente_estado', 'id_agente_modulo', $id_agent_module);
if ($interval_last <= $datelimit) {
$elapsed = $interval_last - $interval_begin;
$times = intval ($elapsed / $interval);
$timestamp_end = get_db_value ('utimestamp', 'tagente_estado', 'id_agente_modulo', $id_agent_module);
if ($timestamp_end <= $datelimit) {
$elapsed = $timestamp_end - $timestamp_begin;
$times = intval ($elapsed / $module_interval);
$sum += $times * $previous_data;
}

View File

@ -291,7 +291,7 @@ function alert_reporting ($id_group, $period = 0, $date = 0, $return = false) {
}
$fired_percentage = round (sizeof ($alerts_fired) / sizeof ($alerts) * 100, 2);
$not_fired_percentage = 100 - $fired_percentage;
$output .= '<img src="http://localhost/pandora/reporting/fgraph.php?tipo=alerts_fired_pipe&height=150&width=280&fired='.
$output .= '<img src="reporting/fgraph.php?tipo=alerts_fired_pipe&height=150&width=280&fired='.
$fired_percentage.'&not_fired='.$not_fired_percentage.'" style="float: right; border: 1px solid black">';
$output .= '<strong>'.lang_string ('agents_with_fired_alerts').': '.sizeof ($agents).'</strong><br />';
@ -308,6 +308,8 @@ function alert_reporting ($id_group, $period = 0, $date = 0, $return = false) {
$table->head[1] = lang_string ('alert_description');
$table->head[2] = lang_string ('times_fired');
$table->head[3] = lang_string ('priority');
$table->align = array ();
$table->align[2] = 'center';
foreach ($agents as $alerts) {
$data = array ();
@ -318,7 +320,7 @@ function alert_reporting ($id_group, $period = 0, $date = 0, $return = false) {
$data[0] = '';
$data[1] = $alert['descripcion'];
$data[2] = $alerts_fired[$alert['id_aam']];
$data[3] = $alert['priority'];
$data[3] = get_alert_priority ($alert['priority']);
array_push ($table->data, $data);
}
}
@ -375,7 +377,7 @@ function monitor_health_reporting ($id_group, $period = 0, $date = 0, $return =
}
$down_percentage = round ($monitors_down / sizeof ($monitors) * 100, 2);
$not_down_percentage = 100 - $down_percentage;
$output .= '<img src="http://localhost/pandora/reporting/fgraph.php?tipo=monitors_health_pipe&height=150&width=280&down='.
$output .= '<img src="reporting/fgraph.php?tipo=monitors_health_pipe&height=150&width=280&down='.
$down_percentage.'&not_down='.$not_down_percentage.'" style="float: right; border: 1px solid black">';
$output .= '<strong>'.lang_string ('total_monitors').': '.sizeof ($monitors).'</strong><br />';

View File

@ -128,7 +128,7 @@ $SQL_pre = "SELECT tagente_modulo.id_agente_modulo, tagente.nombre, tagente_modu
$SQL_pre_count = "SELECT count(tagente_modulo.id_agente_modulo) ";
$SQL = " FROM tagente, tagente_modulo, tagente_estado WHERE tagente.id_agente = tagente_modulo.id_agente AND tagente_modulo.disabled = 0 AND tagente_modulo.id_tipo_modulo in (2, 9, 12, 18, 6, 100) AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo ";
$SQL = " FROM tagente, tagente_modulo, tagente_estado WHERE tagente.id_agente = tagente_modulo.id_agente AND tagente_modulo.disabled = 0 AND tagente.disabled = 0 AND tagente_modulo.id_tipo_modulo in (2, 9, 12, 18, 6, 100) AND tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo ";
// Agent group selector
if ($ag_group > 1)

View File

@ -261,7 +261,7 @@ foreach ($contents as $content) {
$table->rowclass[$n - 1] = 'datos3';
$data = array ();
$monitor_value = $sla_result = format_numeric (return_module_SLA ($content['id_agent_module'], $content['period'], 1, 1, $datetime));
$monitor_value = format_numeric (return_module_SLA ($content['id_agent_module'], $content['period'], 1, 1, $datetime));
$data[0] = '<p style="font: bold 3em Arial, Sans-serif; color: #000000;">';
$data[0] .= $monitor_value.' % <img src="images/b_green.png" height="32" width="32"></p>';
$monitor_value2 = format_numeric (100 - $monitor_value, 2) ;
@ -281,7 +281,7 @@ foreach ($contents as $content) {
$data = array ();
$table->colspan[$n][0] = 2;
$value = format_for_graph (return_moduledata_avg_value ($content['id_agent_module'], $content['period'], $datetime));
$value = format_numeric (return_moduledata_avg_value ($content['id_agent_module'], $content['period'], $datetime));
$data[0] = '<p style="font: bold 3em Arial, Sans-serif; color: #000000;">'.$value.'</p>';
array_push ($table->data, $data);
@ -297,7 +297,7 @@ foreach ($contents as $content) {
$data = array ();
$table->colspan[$n][0] = 2;
$value = format_for_graph (return_moduledata_max_value ($content['id_agent_module'], $content['period'], $datetime));
$value = format_numeric (return_moduledata_max_value ($content['id_agent_module'], $content['period'], $datetime));
$data[0] = '<p style="font: bold 3em Arial, Sans-serif; color: #000000;">'.$value.'</p>';
array_push ($table->data, $data);
@ -313,7 +313,7 @@ foreach ($contents as $content) {
$data = array ();
$table->colspan[$n][0] = 2;
$value = format_for_graph (return_moduledata_min_value ($content['id_agent_module'], $content['period'], $datetime));
$value = format_numeric (return_moduledata_min_value ($content['id_agent_module'], $content['period'], $datetime));
$data[0] = '<p style="font: bold 3em Arial, Sans-serif; color: #000000;">'.$value.'</p>';
array_push ($table->data, $data);
@ -329,7 +329,7 @@ foreach ($contents as $content) {
$data = array ();
$table->colspan[$n][0] = 2;
$value = format_for_graph (return_moduledata_sum_value ($content['id_agent_module'], $content['period'], $datetime));
$value = format_numeric (return_moduledata_sum_value ($content['id_agent_module'], $content['period'], $datetime));
$data[0] = '<p style="font: bold 3em Arial, Sans-serif; color: #000000;">'.$value.'</p>';
array_push ($table->data, $data);
@ -344,7 +344,7 @@ foreach ($contents as $content) {
$data = array ();
$table->colspan[$n][0] = 2;
$value = format_for_graph (return_moduledata_sum_value ($content['id_agent_module'], $content['period'], $datetime));
$value = format_numeric (return_moduledata_sum_value ($content['id_agent_module'], $content['period'], $datetime));
$data[0] = general_group_reporting ($report['id_group'], true);
array_push ($table->data, $data);