2009-12-23 Ramon Novoa <rnovoa@artica.es>

* include/functions_db.php: Fixed avg. calculation in custom reports.




git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@2238 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
ramonn 2009-12-23 17:36:32 +00:00
parent e154d0613f
commit a89ab56552
2 changed files with 36 additions and 15 deletions

View File

@ -1,3 +1,7 @@
2009-12-23 Ramon Novoa <rnovoa@artica.es>
* include/functions_db.php: Fixed avg. calculation in custom reports.
2009-12-23 Miguel de Dios <miguel.dedios@artica.es>
* godmode/agentes/planned_downtime.php: fixes bug in several fields of

View File

@ -2487,27 +2487,44 @@ function get_agentmodule_data_average ($id_agent_module, $period, $date = 0) {
$datelimit = $date - $period;
$sql = sprintf ("SELECT SUM(datos), COUNT(*) FROM tagente_datos
$sql = sprintf ("SELECT * FROM tagente_datos
WHERE id_agente_modulo = %d
AND utimestamp > %d AND utimestamp <= %d
ORDER BY utimestamp ASC",
$id_agent_module, $datelimit, $date);
$values = get_db_row_sql ($sql, true);
$sum = (float) $values[0];
$total = (int) $values[1];
/* Get also the previous data before the selected interval. */
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data) {
return ($previous_data['datos'] + $sum) / ($total + 1);
} elseif ($total > 0) {
return $sum / $total;
$values = get_db_all_rows_sql ($sql, true);
if ($values === false) {
$values = array ();
}
return 0;
/* Get also the previous data before the selected interval. */
$sum = 0;
$total = 0;
$module_interval = get_module_interval ($id_agent_module);
$previous_data = get_previous_data ($id_agent_module, $datelimit);
if ($previous_data !== false) {
$values = array_merge (array ($previous_data), $values);
}
foreach ($values as $data) {
$interval_total = 1;
$interval_sum = $data['datos'];
if ($previous_data !== false && $data['utimestamp'] - $previous_data['utimestamp'] > $module_interval) {
$interval_total = round (($data['utimestamp'] - $previous_data['utimestamp']) / $module_interval, 0);
$interval_sum *= $interval_total;
}
$total += $interval_total;
$sum += $interval_sum;
$previous_data = $data;
}
if ($total == 0) {
return 0;
}
return $sum / $total;
}
/**